MethodBuilder.GetParameters Metod

Definition

Returnerar parametrarna för den här metoden.

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()

Returer

En matris med ParameterInfo objekt som representerar metodens parametrar.

Undantag

Den här metoden stöds inte för närvarande. Hämta metoden med och GetMethod(String, BindingFlags, Binder, CallingConventions, Type[], ParameterModifier[]) anropa GetParameters den returnerade MethodInfo.

Exempel

Kodexemplet nedan illustrerar användningen av GetParameters för att identifiera information om de parametrar som skickas till en dynamiskt genererad metod.


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());
    }
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

Gäller för