所以我当前正在编写在运行时生成对象的代码。就像在这个Q& a中一样。
但是,我很难找到有关动态创建具有相同类型的类型的任何信息。类似:
public class Foo
{
private Foo _Parent
public Foo()
{}
public Foo Parent
{
get { return _Parent; }
set { _Parent = value; }
}
}
有什么方法可以在C#中使用反射或发射?
预先感谢。
今天,我了解到您可以将TypeBuilder
施放到Type
上,以获取要构建的类型的处理:
TypeBuilder tb = // get from a ModuleBuilder or wherever
Type typeImAboutToBuild = (Type)tb;
FieldBuilder fb = tb.DefineField(
"_Parent", typeImAboutToBuild, FieldAttributes.Private)
编辑:TypeBuilder
实际上是从Type
继承,而不是explicit
或implicit
转换操作;您甚至不需要演员表:
TypeBuilder tb = //whatever
FieldBuilder fb = tb.DefineField("_Parent", tb, FieldAttributes.Private)