6

C# クラスを AutoCAD エンティティに XRecord として格納する方法を見つけようとしています。たとえば、次のクラスがあります。

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 Forum でこのディスカッションをチェックしてください。私の言いたいことが明確になるかもしれません。また、小さなコード スニペットもあります。

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

于 2015-04-29T12:21:18.590 に答える