【发布时间】:2014-06-03 18:33:58
【问题描述】:
我正在尝试以编程方式定义一个具有基类的类和一个调用基构造函数的构造函数。子类构造函数的一部分工作是用一个值初始化一个名为 name 的字符串。但无论我尝试什么,名称仍然为空。基本构造函数工作正常,因为一些数组列表已初始化等。 Typesignature 是一个字符串。字段名称已存在于基类中。
FieldBuilder fbname = tb.DefineField("name", typeof(string), FieldAttributes.Public);
ILGenerator ctor1IL = ctor1.GetILGenerator();
ctor1IL.Emit(OpCodes.Ldarg_0);
//get base constructor
var bc = tb.BaseType.GetConstructor(System.Type.EmptyTypes);
ctor1IL.Emit(OpCodes.Call, bc);
ctor1IL.Emit(OpCodes.Ldarg_0);
ctor1IL.Emit(OpCodes.Ldstr, typeSignature);
ctor1IL.Emit(OpCodes.Stfld, fbname);
ctor1IL.Emit(OpCodes.Ret);
【问题讨论】:
标签: c# il typebuilder