用反射发出定义构造函数

更新:2007 年 11 月

构造函数使用 TypeBuilder.DefineConstructor 方法来定义。DefineConstructor 返回一个 ConstructorBuilderDefineConstructor 要求调用方使用 MethodAttributes 枚举指定构造函数属性。

使用 TypeBuilder.DefineDefaultConstructor 方法定义类的默认构造函数。DefineDefaultConstructor 返回 ConstructorBuilder。默认构造函数只调用父类的构造函数。如果调用方未定义类的默认构造函数,公共语言运行库将自动执行此操作。

属性

  • 运行库为构造函数设置属性 MethodAttributes.SpecialName

  • 使用 MethodAttributes.Private 属性指定私有构造函数。对于其他可见性属性,请参见 MethodAttributes 枚举的说明。

已知问题

  • 虽然 ConstructorBuilderConstructorInfo 派生,但 ConstructorInfo 类中定义的某些抽象方法并没有在 ConstructorBuilder 中完全实现。这些 ConstructorBuilder 方法引发 NotSupportedException。通过检索包含构造函数的类型并在它上面反射,可以获得所需的功能。例如,ConstructorBuilder.Invoke 方法没有完全实现。

  • 当前不支持自定义修饰符。

请参见

其他资源

使用反射发出