Определение конструктора при помощи порожденного отражения
Обновлен: Ноябрь 2007
Конструктор определяется с использованием метода TypeBuilder.DefineConstructor. Метод DefineConstructor возвращает объект ConstructorBuilder. Для метода DefineConstructor требуется, чтобы в вызывающем операторе были заданы атрибуты конструктора с использованием перечисления MethodAttributes.
Конструктор по умолчанию для класса определяется с использованием метода TypeBuilder.DefineDefaultConstructor Метод DefineDefaultConstructor возвращает объект ConstructorBuilder. Стандартный конструктор просто вызывает конструктор родительского класса. Среда CLR автоматически определяет стандартный конструктор для класса, если это не выполнено вызывающим объектом.
Атрибуты
Среда выполнения устанавливает атрибут MethodAttributes.SpecialName для конструктора.
Закрытые конструкторы задаются с использованием атрибута MethodAttributes.Private. Сведения о других атрибутах видимости см. в описании перечисления MethodAttributes.
Known Issues (Известные проблемы )
Несмотря на то, что класс ConstructorBuilder является производным от класса ConstructorInfo, некоторые из абстрактных методов, определенных в классе ConstructorInfo, реализованы в классе ConstructorBuilder не полностью. Эти методы класса ConstructorBuilder выдают исключение NotSupportedException. Желаемая функциональность может быть достигнута путем получения типа, содержащего данный конструктор, и его отражением. Например, не полностью реализован метод ConstructorBuilder.Invoke.
Модификаторы "Custom" в настоящее время не поддерживаются.