6

我正在尝试找到一种方法,可以将 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
}

我创建了一个实例:

ExampleClass objToStoreInXRecord = new ExampleClass(3, 5);

将其存储到 AutoCAD 实体(例如图形中的一条线)XRecord 中的最佳方法是什么,以便我可以执行以下操作:

ExampleClass objRecoveredFromXRecord = GetXRecordFromEntity(Entity e)

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

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

4

2 回答 2

0

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

于 2015-04-15T03:58:06.987 回答
0

使用 .NET 序列化不是 AutoCAD 中支持的方式,这意味着其他应用程序不会理解...

在 Autodesk 论坛上查看这个讨论,它可能会澄清我的意思。此外,还有一个小代码片段。

http://forums.autodesk.com/t5/net/binary-serialization-to-xrecord/td-p/5601969

于 2015-04-29T12:21:18.590 回答