C# 如何使用IL Emit定义相互引用的两种类型
我需要使用反射发射定义如下内容:C# 如何使用IL Emit定义相互引用的两种类型,c#,reflection.emit,C#,Reflection.emit,我需要使用反射发射定义如下内容: public class Foo { public Bar Bar { get; set; } } public class Bar { public Foo Foo { get; set; } } 困难在于调用TypeBuilder.DefineProperty()时,我需要传递属性返回值的System.Type,该值目前还不存在。如果引用只指向一个方向,这将是很容易的,但同时指向两个方向会导致鸡和蛋的问题 我希望找到一个重载,它使用一个T
public class Foo {
public Bar Bar { get; set; }
}
public class Bar {
public Foo Foo { get; set; }
}
困难在于调用TypeBuilder.DefineProperty()时,我需要传递属性返回值的System.Type,该值目前还不存在。如果引用只指向一个方向,这将是很容易的,但同时指向两个方向会导致鸡和蛋的问题
我希望找到一个重载,它使用一个TypeBuilder而不是一个类型,这样可以让我同时定义两个类,然后在最后对这两个类调用TypeBuilder.CreateType()。但我没有看到这样的事情
解决这个问题的正确方法是什么?TypeBuilder是类型的子类: 您可以将其传递给DefineProperty