Questo articolo è stato tradotto automaticamente. Per visualizzare l'articolo in inglese, selezionare la casella di controllo Inglese. È possibile anche visualizzare il testo inglese in una finestra popup posizionando il puntatore del mouse sopra il testo.
Traduzione
Inglese

Metodo TypeBuilder.DefineConstructor (MethodAttributes, CallingConventions, Type[])

 

Data di pubblicazione: ottobre 2016

Aggiunge un nuovo costruttore al tipo, con la firma e gli attributi specificati.

Spazio dei nomi:   System.Reflection.Emit
Assembly:  mscorlib (in mscorlib.dll)

[ComVisibleAttribute(true)]
public ConstructorBuilder DefineConstructor(
	MethodAttributes attributes,
	CallingConventions callingConvention,
	Type[] parameterTypes
)

Parametri

attributes
Type: System.Reflection.MethodAttributes

Attributi del costruttore.

callingConvention
Type: System.Reflection.CallingConventions

Convenzione di chiamata del costruttore.

parameterTypes
Type: System.Type[]

Tipi di parametro del costruttore.

Valore restituito

Type: System.Reflection.Emit.ConstructorBuilder

Costruttore definito.

Exception Condition
InvalidOperationException

Il tipo è stato creato in precedenza usando CreateType.

If you do not define a constructor for your dynamic type, a default constructor is provided automatically, and it calls the default constructor of the base class.

If you define a constructor for your dynamic type, a default constructor is not provided. You have the following options for providing a default constructor in addition to the constructor you defined:

  • If you want a default constructor that simply calls the default constructor of the base class, you can use the M:System.Reflection.Emit.TypeBuilder.DefineDefaultConstructor(System.Reflection.MethodAttributes) method to create one (and optionally restrict access to it). Do not provide an implementation for this default constructor. If you do, an exception is thrown when you try to use the constructor. No exception is thrown when the M:System.Reflection.Emit.TypeBuilder.CreateType method is called.

  • If you want a default constructor that does something more than simply calling the default constructor of the base class, or that calls another constructor of the base class, or that does something else entirely, you must use the M:System.Reflection.Emit.TypeBuilder.DefineConstructor(System.Reflection.MethodAttributes,System.Reflection.CallingConventions,System.Type[]) method to create one, and provide your own implementation.

The following code sample demonstrates the use of DefineConstructor to set a constructor's particular signature and attributes on a dynamic type and return a corresponding T:System.Reflection.Emit.ConstructorBuilder for MSIL population.

// Define the constructor.
Type[] constructorArgs = { typeof(String) };
ConstructorBuilder myConstructorBuilder = 
   helloWorldTypeBuilder.DefineConstructor(MethodAttributes.Public, 
                      CallingConventions.Standard, constructorArgs);
// Generate IL for the method.The constructor stores its argument in the private field.
ILGenerator myConstructorIL = myConstructorBuilder.GetILGenerator();
myConstructorIL.Emit(OpCodes.Ldarg_0);
myConstructorIL.Emit(OpCodes.Ldarg_1);
myConstructorIL.Emit(OpCodes.Stfld, myGreetingField);
myConstructorIL.Emit(OpCodes.Ret);

.NET Framework
Disponibile da 1.1
Silverlight
Disponibile da 2.0
Torna all'inizio
Mostra: