ConstructorBuilder.GetParameters Metode
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Mengembalikan parameter konstruktor ini.
public:
override cli::array <System::Reflection::ParameterInfo ^> ^ GetParameters();
public override System.Reflection.ParameterInfo[] GetParameters ();
override this.GetParameters : unit -> System.Reflection.ParameterInfo[]
Public Overrides Function GetParameters () As ParameterInfo()
Mengembalikan
Array yang mewakili parameter konstruktor ini.
Pengecualian
CreateType()belum dipanggil pada jenis konstruktor ini, dalam versi .NET Framework 1.0 dan 1.1.
CreateType()belum dipanggil pada jenis konstruktor ini, dalam .NET Framework versi 2.0.
Contoh
Sampel kode mengilustrasikan penggunaan GetParameters
.
// Define a constructor of the dynamic class.
ConstructorBuilder^ myConstructorBuilder = myTypeBuilder->DefineConstructor(
MethodAttributes::Public, CallingConventions::Standard, myConstructorArgs );
// Get a reference to the module that contains this constructor.
Module^ myModule = myConstructorBuilder->GetModule();
Console::WriteLine( "Module Name : {0}", myModule->Name );
// Get the 'MethodToken' that represents the token for this constructor.
MethodToken myMethodToken = myConstructorBuilder->GetToken();
Console::WriteLine( "Constructor Token is : {0}", myMethodToken.Token );
// Get the method implementation flags for this constructor.
MethodImplAttributes myMethodImplAttributes = myConstructorBuilder->GetMethodImplementationFlags();
Console::WriteLine( "MethodImplAttributes : {0}", myMethodImplAttributes );
// Generate IL for the method, call its base class constructor and store the arguments
// in the private field.
ILGenerator^ myILGenerator3 = myConstructorBuilder->GetILGenerator();
myILGenerator3->Emit( OpCodes::Ldarg_0 );
ConstructorInfo^ myConstructorInfo = Object::typeid->GetConstructor( gcnew array<Type^>(0) );
myILGenerator3->Emit( OpCodes::Call, myConstructorInfo );
myILGenerator3->Emit( OpCodes::Ldarg_0 );
myILGenerator3->Emit( OpCodes::Ldarg_1 );
myILGenerator3->Emit( OpCodes::Stfld, myGreetingField );
myILGenerator3->Emit( OpCodes::Ret );
// Add a method to the type.
myMethodBuilder = myTypeBuilder->DefineMethod(
"HelloWorld", MethodAttributes::Public, nullptr, nullptr );
// Generate IL for the method.
ILGenerator^ myILGenerator2 = myMethodBuilder->GetILGenerator();
myILGenerator2->EmitWriteLine( "Hello World from global" );
myILGenerator2->Emit( OpCodes::Ret );
myModuleBuilder->CreateGlobalFunctions();
myType1 = myTypeBuilder->CreateType();
// Get the parameters of this constructor.
array<ParameterInfo^>^myParameterInfo = myConstructorBuilder->GetParameters();
for ( int i = 0; i < myParameterInfo->Length; i++ )
{
Console::WriteLine( "Declaration type : {0}", myParameterInfo[ i ]->Member->DeclaringType );
}
// Define a constructor of the dynamic class.
ConstructorBuilder myConstructorBuilder = myTypeBuilder.DefineConstructor(
MethodAttributes.Public, CallingConventions.Standard, myConstructorArgs);
// Get a reference to the module that contains this constructor.
Module myModule = myConstructorBuilder.GetModule();
Console.WriteLine("Module Name : " + myModule.Name);
// Get the 'MethodToken' that represents the token for this constructor.
MethodToken myMethodToken = myConstructorBuilder.GetToken();
Console.WriteLine("Constructor Token is : " + myMethodToken.Token);
// Get the method implementation flags for this constructor.
MethodImplAttributes myMethodImplAttributes = myConstructorBuilder.GetMethodImplementationFlags();
Console.WriteLine("MethodImplAttributes : " + myMethodImplAttributes);
// Generate IL for the method, call its base class constructor and store the arguments
// in the private field.
ILGenerator myILGenerator3 = myConstructorBuilder.GetILGenerator();
myILGenerator3.Emit(OpCodes.Ldarg_0);
ConstructorInfo myConstructorInfo = typeof(Object).GetConstructor(new Type[0]);
myILGenerator3.Emit(OpCodes.Call, myConstructorInfo);
myILGenerator3.Emit(OpCodes.Ldarg_0);
myILGenerator3.Emit(OpCodes.Ldarg_1);
myILGenerator3.Emit(OpCodes.Stfld, myGreetingField);
myILGenerator3.Emit(OpCodes.Ret);
// Add a method to the type.
myMethodBuilder = myTypeBuilder.DefineMethod
("HelloWorld",MethodAttributes.Public,null,null);
// Generate IL for the method.
ILGenerator myILGenerator2 = myMethodBuilder.GetILGenerator();
myILGenerator2.EmitWriteLine("Hello World from global");
myILGenerator2.Emit(OpCodes.Ret);
myModuleBuilder.CreateGlobalFunctions();
myType1 = myTypeBuilder.CreateType();
// Get the parameters of this constructor.
ParameterInfo[] myParameterInfo = myConstructorBuilder.GetParameters();
for(int i =0 ; i < myParameterInfo.Length; i++)
{
Console.WriteLine("Declaration type : " + myParameterInfo[i].Member.DeclaringType);
}
' Define a constructor of the dynamic class.
Dim myConstructorBuilder As ConstructorBuilder = _
myTypeBuilder.DefineConstructor(MethodAttributes.Public, CallingConventions.Standard, _
myConstructorArgs)
' Get a reference to the module that contains this constructor.
Dim myModule As [Module] = myConstructorBuilder.GetModule()
Console.WriteLine("Module Name : " + myModule.Name)
' Get the 'MethodToken' that represents the token for this constructor.
Dim myMethodToken As MethodToken = myConstructorBuilder.GetToken()
Console.WriteLine("Constructor Token is : " + myMethodToken.Token.ToString())
' Get the method implementation flags for this constructor.
Dim myMethodImplAttributes As MethodImplAttributes = _
myConstructorBuilder.GetMethodImplementationFlags()
Console.WriteLine("MethodImplAttributes : " + myMethodImplAttributes.ToString())
' Generate IL for the method, call its base class constructor and store the arguments
' in the private field.
Dim myILGenerator3 As ILGenerator = myConstructorBuilder.GetILGenerator()
myILGenerator3.Emit(OpCodes.Ldarg_0)
Dim myConstructorInfo As ConstructorInfo = GetType(Object).GetConstructor(New Type() {})
myILGenerator3.Emit(OpCodes.Call, myConstructorInfo)
myILGenerator3.Emit(OpCodes.Ldarg_0)
myILGenerator3.Emit(OpCodes.Ldarg_1)
myILGenerator3.Emit(OpCodes.Stfld, myGreetingField)
myILGenerator3.Emit(OpCodes.Ret)
' Add a method to the type.
myMethodBuilder = _
myTypeBuilder.DefineMethod("HelloWorld", MethodAttributes.Public, Nothing, Nothing)
' Generate IL for the method.
Dim myILGenerator2 As ILGenerator = myMethodBuilder.GetILGenerator()
myILGenerator2.EmitWriteLine("Hello World from global")
myILGenerator2.Emit(OpCodes.Ret)
myModuleBuilder.CreateGlobalFunctions()
myType1 = myTypeBuilder.CreateType()
' Get the parameters of this constructor.
Dim myParameterInfo As ParameterInfo() = myConstructorBuilder.GetParameters()
Dim i As Integer
For i = 0 To myParameterInfo.Length - 1
Console.WriteLine _
("Declaration type : " + myParameterInfo(i).Member.DeclaringType.ToString())
Next i
Keterangan
Properti ini tidak didukung sampai setelah TypeBuilder.CreateType metode dipanggil. Dalam versi .NET Framework 1.0 dan 1.1, InvalidOperationException dilemparkan. Dalam .NET Framework versi 2.0, NotSupportedException dilemparkan.