将C#对象存储到AutoCAD实体的XRecord中

Nic*_*ert 6 c# autocad-plugin

我正在尝试找到一种方法,可以将C#类作为XRecord存储到AutoCAD实体中.例如,我有以下类:

public class ExampleClass
{
    private int x;
    private int y;

    public ExampleClass(int x, int y)
    {
         this.x = x;
         this.y = y;
    }

    #region Getters and Setters
}
Run Code Online (Sandbox Code Playgroud)

我创建了一个它的实例:

ExampleClass objToStoreInXRecord = new ExampleClass(3, 5);
Run Code Online (Sandbox Code Playgroud)

将它存储到AutoCAD实体(例如图中的一行)XRecord的最佳方法是什么,这样我就可以这样做:

ExampleClass objRecoveredFromXRecord = GetXRecordFromEntity(Entity e)
Run Code Online (Sandbox Code Playgroud)

其中GetXRecordFromEntity(Entity e)是一个帮助器方法,我可以编写一个实体e,获取我之前存储的对象的XRecord,然后返回它.

我对XRecord的工作原理以及XRecord与AutoCAD的命名对象字典(NOD)的关系并没有很好的处理.我已经看到了实现,其中要存储在XRecord中的对象使用二进制格式化程序进行序列化,并且序列化数据存储在实体的XRecord中,但我正在寻找更好的方法.

小智 0

序列化对象并将其添加到 xrecord。它工作完美。