Freigeben über


MethodBuilder.GetParameters-Methode

Gibt die Parameter dieser Methode zurück.

Namespace: System.Reflection.Emit
Assembly: mscorlib (in mscorlib.dll)

Syntax

'Declaration
Public Overrides Function GetParameters As ParameterInfo()
'Usage
Dim instance As MethodBuilder
Dim returnValue As ParameterInfo()

returnValue = instance.GetParameters
public override ParameterInfo[] GetParameters ()
public:
virtual array<ParameterInfo^>^ GetParameters () override
public ParameterInfo[] GetParameters ()
public override function GetParameters () : ParameterInfo[]

Rückgabewert

Ein Array von ParameterInfo-Objekten, das die Parameter der Methode darstellt.

Ausnahmen

Ausnahmetyp Bedingung

NotSupportedException

Diese Methode wird derzeit nicht unterstützt. Rufen Sie die Methode mithilfe von GetMethod ab, und rufen Sie GetParameters für die zurückgegebene MethodInfo auf.

Beispiel

Das folgende Codebeispiel veranschaulicht die Verwendung von GetParameters zum Ermitteln von Informationen über die Parameter, die an eine dynamisch generierte Methode übergeben wurden.

Dim myType1 As TypeBuilder = myModBuilder.DefineType("MyMathFunctions", _
                      TypeAttributes.Public)

Dim myMthdBuilder As MethodBuilder = myType1.DefineMethod("AddToRefValue", _
          MethodAttributes.Public, Nothing, _
          New Type() {Type.GetType("System.Int32&"), GetType(Integer)})

Dim myParam1 As ParameterBuilder = myMthdBuilder.DefineParameter(1, _
                  ParameterAttributes.Out, "thePool")

Dim myParam2 As ParameterBuilder = myMthdBuilder.DefineParameter(2, _
                  ParameterAttributes.In, "addMeToPool")

' Create body via ILGenerator here, and complete the type.

Dim myParams As ParameterInfo() = myMthdBuilder.GetParameters()

Console.WriteLine("Method: {0}", myMthdBuilder.Name)

Dim myParam As ParameterInfo
For Each myParam In  myParams
   Console.WriteLine("------- Parameter: {0} {1} at pos {2}, with attribute {3}", _
          myParam.ParameterType, myParam.Name, myParam.Position, _
          myParam.Attributes.ToString())
Next myParam
TypeBuilder myType1 = myModBuilder.DefineType("MyMathFunctions",
                TypeAttributes.Public);

MethodBuilder myMthdBuilder = myType1.DefineMethod("AddToRefValue",
                MethodAttributes.Public,
                typeof(void),
                new Type[] { Type.GetType("System.Int32&"),
                         typeof(int) });
ParameterBuilder myParam1 = myMthdBuilder.DefineParameter(1,
                ParameterAttributes.Out,
                "thePool");
ParameterBuilder myParam2 = myMthdBuilder.DefineParameter(2,
                ParameterAttributes.In,
                "addMeToPool");

// Create body via ILGenerator here, and complete the type.

ParameterInfo[] myParams = myMthdBuilder.GetParameters();

Console.WriteLine("Method: {0}", myMthdBuilder.Name);

foreach (ParameterInfo myParam in myParams)
    {
   Console.WriteLine("------- Parameter: {0} {1} at pos {2}, with attribute {3}", 
             myParam.ParameterType, myParam.Name, myParam.Position,
             myParam.Attributes.ToString());

    }
TypeBuilder^ myType1 = myModBuilder->DefineType( "MyMathFunctions", TypeAttributes::Public );
array<Type^>^temp0 = {Type::GetType( "System.Int32&" ),int::typeid};
MethodBuilder^ myMthdBuilder = myType1->DefineMethod( "AddToRefValue", MethodAttributes::Public, void::typeid, temp0 );
ParameterBuilder^ myParam1 = myMthdBuilder->DefineParameter( 1, ParameterAttributes::Out, "thePool" );
ParameterBuilder^ myParam2 = myMthdBuilder->DefineParameter( 2, ParameterAttributes::In, "addMeToPool" );

// Create body via ILGenerator here, and complete the type.
array<ParameterInfo^>^myParams = myMthdBuilder->GetParameters();
Console::WriteLine( "Method: {0}", myMthdBuilder->Name );

for each (ParameterInfo^ myParam in myParams)
{
   Console::WriteLine("------- Parameter: {0} {1} at pos {2}, with attribute {3}", 
      myParam->ParameterType, myParam->Name, myParam->Position,
            myParam->Attributes.ToString());
}
TypeBuilder myType1 = myModBuilder.DefineType("MyMathFunctions",
    TypeAttributes.Public);
MethodBuilder myMthdBuilder = myType1.DefineMethod("AddToRefValue",
    MethodAttributes.Public, Void.class.ToType(),
    new Type[] { Type.GetType("System.Int32&"), int.class.ToType() });
ParameterBuilder myParam1 = myMthdBuilder.DefineParameter(1,
    ParameterAttributes.Out, "thePool");
ParameterBuilder myParam2 = myMthdBuilder.DefineParameter(2,
    ParameterAttributes.In, "addMeToPool");

// Create body via ILGenerator here, and complete the type.
ParameterInfo myParams[] = myMthdBuilder.GetParameters();
Console.WriteLine("Method: {0}", myMthdBuilder.get_Name());
for (int iCtr = 0; iCtr < myParams.length; iCtr++) {
    ParameterInfo myParam = myParams[iCtr];
    Console.WriteLine(
        "------- Parameter: {0} {1} at pos {2},with attribute {3}",
        new Object[] { myParam.get_ParameterType(), myParam.get_Name(),
        System.Convert.ToString(myParam.get_Position()),
        myParam.get_Attributes().ToString() });
}

Plattformen

Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.

Versionsinformationen

.NET Framework

Unterstützt in: 2.0, 1.1, 1.0

Siehe auch

Referenz

MethodBuilder-Klasse
MethodBuilder-Member
System.Reflection.Emit-Namespace