2010-02-01 33 views
4

我需要像這樣定義使用反射的東西散發出:我如何定義兩種類型引用對方使用IL的Emit

public class Foo { 
    public Bar Bar { get; set; } 
} 

public class Bar { 
    public Foo Foo { get; set; } 
} 

的困難是,調用TypeBuilder.DefineProperty()的時候,我需要通過該屬性返回值的System.Type,尚不存在。如果參考文獻只有一種方法,那很容易,但是兩種方法都會導致雞和蛋的問題。

我希望能夠找到一個重載,它需要一個TypeBuilder而不是一個Type,這會讓我在同一時間定義兩個類,然後在兩端都調用TypeBuilder.CreateType()。但我沒有看到這樣的事情。

什麼是解決這個正確的方法是什麼?

回答

4

TypeBuilder是類型的子類: MSDN

你可以傳遞到DefineProperty。

+0

哇,我完全沒意識到這一點,謝謝! – 2010-02-01 03:58:01

相關問題