Поделиться через


Определение конструктора при помощи порожденного отражения

Обновлен: Ноябрь 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" в настоящее время не поддерживаются.

См. также

Другие ресурсы

Использование порожденного отражения