我需要使用反射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()。但我没有看到这样的事情。
解决这个问题的正确方法是什么?