3

そのため、現在、実行時にオブジェクトを生成するコードを書いています。この Q&Aとよく似ています。

ただし、同じタイプが埋め込まれたタイプを動的に作成することに関する情報を見つけるのに苦労しています。何かのようなもの:

public class Foo
{
    private Foo _Parent

    public Foo()
    {}

    public Foo Parent
    {
        get { return _Parent; }
        set { _Parent = value; }
    }
}

リフレクションまたはエミットを使用してC#でこれを行う方法はありますか?

前もって感謝します。

4

1 に答える 1

2

今日TypeBuilder、aを aにキャストしてType、構築しようとしている型のハンドルを取得できることを学びました。

TypeBuilder tb = // get from a ModuleBuilder or wherever
Type typeImAboutToBuild = (Type)tb;

FieldBuilder fb = tb.DefineField(
    "_Parent", typeImAboutToBuild, FieldAttributes.Private)

編集:これはor変換操作ではなく、TypeBuilder実際にはから継承します。キャストさえ必要ありません:Typeexplicitimplicit

TypeBuilder tb = //whatever
FieldBuilder fb = tb.DefineField("_Parent", tb, FieldAttributes.Private)
于 2012-12-20T08:47:08.113 に答える