MethodBuilder.GetParameters Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Vrátí parametry této metody.
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()
Návraty
Pole ParameterInfo objektů, které představují parametry metody.
Výjimky
Tato metoda se v současné době nepodporuje. Načtěte metodu pomocí GetMethod(String, BindingFlags, Binder, CallingConventions, Type[], ParameterModifier[]) a volání GetParameters vráceného MethodInfo.
Příklady
Následující ukázka kódu ukazuje použití GetParameters ke zjištění informací o parametrech předaných dynamicky generované 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