Definieren eines Konstruktors mittels Reflektionsausgabe
Ein Konstruktor wird mithilfe der TypeBuilder.DefineConstructor-Methode definiert. DefineConstructor gibt ConstructorBuilder zurück. DefineConstructor erfordert, dass der Aufrufer die Konstruktorattribute mithilfe der MethodAttributes-Enumeration angibt.
Der Standardkonstruktor für eine Klasse wird mithilfe der TypeBuilder.DefineDefaultConstructor-Methode definiert. DefineDefaultConstructor gibt einen ConstructorBuilder zurück. Der Standardkonstruktor ruft einfach den Konstruktor der übergeordneten Klasse auf. Die Common Language Runtime definiert automatisch einen Standardkonstruktor für eine Klasse, falls dies nicht durch den Aufrufer geschieht.
Attribute
Die Common Language Runtime legt das MethodAttributes.SpecialName-Attribut für den Konstruktor fest.
Private Konstruktoren werden durch das MethodAttributes.Private-Attribut angegeben. Informationen zu anderen Sichtbarkeitsattributen finden Sie in der Beschreibung der MethodAttributes-Enumeration.
Bekannte Probleme
Obwohl ConstructorBuilder von ConstructorInfo abgeleitet ist, sind einige der in der ConstructorInfo-Klasse definierten abstrakten Methoden nicht vollständig in ConstructorBuilder implementiert. Diese ConstructorBuilder-Methoden lösen NotSupportedException aus. Die gewünschte Funktionalität kann durch Abrufen des Typs, der den Konstruktor enthält, und durch Reflektieren dieses Typs erzielt werden. Die ConstructorBuilder.Invoke-Methode ist z. B. nicht vollständig implementiert.
Benutzerdefinierte Modifizierer werden derzeit nicht unterstützt.