用反射发出定义构造函数

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

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

特性

  • 运行时为构造函数设置特性 MethodAttributes.SpecialName

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

已知问题

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

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

请参见

其他资源

使用反射发出