MethodBuilder Klasa
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Definiuje i reprezentuje metodę (lub konstruktor) w klasie dynamicznej.
public ref class MethodBuilder sealed : System::Reflection::MethodInfo
public ref class MethodBuilder sealed : System::Reflection::MethodInfo, System::Runtime::InteropServices::_MethodBuilder
public ref class MethodBuilder abstract : System::Reflection::MethodInfo
public sealed class MethodBuilder : System.Reflection.MethodInfo
[System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)]
public sealed class MethodBuilder : System.Reflection.MethodInfo, System.Runtime.InteropServices._MethodBuilder
[System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)]
[System.Runtime.InteropServices.ComVisible(true)]
public sealed class MethodBuilder : System.Reflection.MethodInfo, System.Runtime.InteropServices._MethodBuilder
public abstract class MethodBuilder : System.Reflection.MethodInfo
type MethodBuilder = class
inherit MethodInfo
[<System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)>]
type MethodBuilder = class
inherit MethodInfo
interface _MethodBuilder
[<System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type MethodBuilder = class
inherit MethodInfo
interface _MethodBuilder
Public NotInheritable Class MethodBuilder
Inherits MethodInfo
Public NotInheritable Class MethodBuilder
Inherits MethodInfo
Implements _MethodBuilder
Public MustInherit Class MethodBuilder
Inherits MethodInfo
- Dziedziczenie
- Atrybuty
- Implementuje
Przykłady
W poniższym przykładzie użyto MethodBuilder klasy do utworzenia metody w ramach typu dynamicznego.
using namespace System;
using namespace System::Reflection;
using namespace System::Reflection::Emit;
void AddMethodDynamically( TypeBuilder^ myTypeBld,
String^ mthdName,
array<Type^>^ mthdParams,
Type^ returnType,
String^ mthdAction )
{
MethodBuilder^ myMthdBld = myTypeBld->DefineMethod( mthdName, static_cast<MethodAttributes>(MethodAttributes::Public | MethodAttributes::Static), returnType, mthdParams );
ILGenerator^ ILOut = myMthdBld->GetILGenerator();
int numParams = mthdParams->Length;
for ( Byte x = 0; x < numParams; x++ )
{
ILOut->Emit( OpCodes::Ldarg_S, x );
}
if ( numParams > 1 )
{
for ( int y = 0; y < (numParams - 1); y++ )
{
if ( mthdAction->Equals( "A" ) )
ILOut->Emit( OpCodes::Add );
else
if ( mthdAction->Equals( "M" ) )
ILOut->Emit( OpCodes::Mul );
else
ILOut->Emit( OpCodes::Add );
}
}
ILOut->Emit( OpCodes::Ret );
};
void main()
{
AppDomain^ myDomain = AppDomain::CurrentDomain;
AssemblyName^ asmName = gcnew AssemblyName;
asmName->Name = "MyDynamicAsm";
AssemblyBuilder^ myAsmBuilder = myDomain->DefineDynamicAssembly( asmName,
AssemblyBuilderAccess::RunAndSave );
ModuleBuilder^ myModule = myAsmBuilder->DefineDynamicModule( "MyDynamicAsm",
"MyDynamicAsm.dll" );
TypeBuilder^ myTypeBld = myModule->DefineType( "MyDynamicType",
TypeAttributes::Public );
// Get info from the user to build the method dynamically.
Console::WriteLine( "Let's build a simple method dynamically!" );
Console::WriteLine( "Please enter a few numbers, separated by spaces." );
String^ inputNums = Console::ReadLine();
Console::Write( "Do you want to [A]dd (default) or [M]ultiply these numbers? " );
String^ myMthdAction = Console::ReadLine()->ToUpper();
Console::Write( "Lastly, what do you want to name your new dynamic method? " );
String^ myMthdName = Console::ReadLine();
// Process inputNums into an array and create a corresponding Type array
int index = 0;
array<String^>^inputNumsList = inputNums->Split();
array<Type^>^myMthdParams = gcnew array<Type^>(inputNumsList->Length);
array<Object^>^inputValsList = gcnew array<Object^>(inputNumsList->Length);
for each (String^ inputNum in inputNumsList)
{
inputValsList[ index ] = Convert::ToInt32( inputNum );
myMthdParams[ index ] = int::typeid;
index++;
}
// Now, call the method building method with the parameters, passing the
// TypeBuilder by reference.
AddMethodDynamically( myTypeBld,
myMthdName,
myMthdParams,
int::typeid,
myMthdAction );
Type^ myType = myTypeBld->CreateType();
Console::WriteLine( "---" );
Console::WriteLine( "The result of {0} the inputted values is: {1}",
((myMthdAction->Equals( "M" )) ? "multiplying" : "adding"),
myType->InvokeMember( myMthdName,
BindingFlags::InvokeMethod | BindingFlags::Public | BindingFlags::Static,
nullptr,
nullptr,
inputValsList ) );
Console::WriteLine( "---" );
// Let's take a look at the method we created.
// If you are interested in seeing the MSIL generated dynamically for the method
// your program generated, change to the directory where you ran the compiled
// code sample and type "ildasm MyDynamicAsm.dll" at the prompt. When the list
// of manifest contents appears, click on "MyDynamicType" and then on the name of
// of the method you provided during execution.
myAsmBuilder->Save( "MyDynamicAsm.dll" );
MethodInfo^ myMthdInfo = myType->GetMethod( myMthdName );
Console::WriteLine( "Your Dynamic Method: {0};", myMthdInfo );
}
using System;
using System.Reflection;
using System.Reflection.Emit;
class DemoMethodBuilder
{
public static void AddMethodDynamically (TypeBuilder myTypeBld,
string mthdName,
Type[] mthdParams,
Type returnType,
string mthdAction)
{
MethodBuilder myMthdBld = myTypeBld.DefineMethod(
mthdName,
MethodAttributes.Public |
MethodAttributes.Static,
returnType,
mthdParams);
ILGenerator ILout = myMthdBld.GetILGenerator();
int numParams = mthdParams.Length;
for (byte x=0; x < numParams; x++)
{
ILout.Emit(OpCodes.Ldarg_S, x);
}
if (numParams > 1)
{
for (int y=0; y<(numParams-1); y++)
{
switch (mthdAction)
{
case "A": ILout.Emit(OpCodes.Add);
break;
case "M": ILout.Emit(OpCodes.Mul);
break;
default: ILout.Emit(OpCodes.Add);
break;
}
}
}
ILout.Emit(OpCodes.Ret);
}
public static void Main()
{
AppDomain myDomain = AppDomain.CurrentDomain;
AssemblyName asmName = new AssemblyName();
asmName.Name = "MyDynamicAsm";
AssemblyBuilder myAsmBuilder = myDomain.DefineDynamicAssembly(
asmName,
AssemblyBuilderAccess.RunAndSave);
ModuleBuilder myModule = myAsmBuilder.DefineDynamicModule("MyDynamicAsm",
"MyDynamicAsm.dll");
TypeBuilder myTypeBld = myModule.DefineType("MyDynamicType",
TypeAttributes.Public);
// Get info from the user to build the method dynamically.
Console.WriteLine("Let's build a simple method dynamically!");
Console.WriteLine("Please enter a few numbers, separated by spaces.");
string inputNums = Console.ReadLine();
Console.Write("Do you want to [A]dd (default) or [M]ultiply these numbers? ");
string myMthdAction = Console.ReadLine().ToUpper();
Console.Write("Lastly, what do you want to name your new dynamic method? ");
string myMthdName = Console.ReadLine();
// Process inputNums into an array and create a corresponding Type array
int index = 0;
string[] inputNumsList = inputNums.Split();
Type[] myMthdParams = new Type[inputNumsList.Length];
object[] inputValsList = new object[inputNumsList.Length];
foreach (string inputNum in inputNumsList)
{
inputValsList[index] = (object)Convert.ToInt32(inputNum);
myMthdParams[index] = typeof(int);
index++;
}
// Now, call the method building method with the parameters, passing the
// TypeBuilder by reference.
AddMethodDynamically(myTypeBld,
myMthdName,
myMthdParams,
typeof(int),
myMthdAction);
Type myType = myTypeBld.CreateType();
Console.WriteLine("---");
Console.WriteLine("The result of {0} the inputted values is: {1}",
((myMthdAction == "M") ? "multiplying" : "adding"),
myType.InvokeMember(myMthdName,
BindingFlags.InvokeMethod | BindingFlags.Public |
BindingFlags.Static,
null,
null,
inputValsList));
Console.WriteLine("---");
// Let's take a look at the method we created.
// If you are interested in seeing the MSIL generated dynamically for the method
// your program generated, change to the directory where you ran the compiled
// code sample and type "ildasm MyDynamicAsm.dll" at the prompt. When the list
// of manifest contents appears, click on "MyDynamicType" and then on the name of
// of the method you provided during execution.
myAsmBuilder.Save("MyDynamicAsm.dll");
MethodInfo myMthdInfo = myType.GetMethod(myMthdName);
Console.WriteLine("Your Dynamic Method: {0};", myMthdInfo.ToString());
}
}
Imports System.Reflection
Imports System.Reflection.Emit
Class DemoMethodBuilder
Public Shared Sub AddMethodDynamically(ByVal myTypeBld As TypeBuilder, _
ByVal mthdName As String, _
ByVal mthdParams() As Type, _
ByVal returnType As Type, _
ByVal mthdAction As String)
Dim myMthdBld As MethodBuilder = myTypeBld.DefineMethod(mthdName, _
MethodAttributes.Public Or MethodAttributes.Static, _
returnType, _
mthdParams)
Dim ILout As ILGenerator = myMthdBld.GetILGenerator()
Dim numParams As Integer = mthdParams.Length
Dim x As Byte
For x = 0 To numParams - 1
ILout.Emit(OpCodes.Ldarg_S, x)
Next x
If numParams > 1 Then
Dim y As Integer
For y = 0 To (numParams - 1) - 1
Select Case mthdAction
Case "A"
ILout.Emit(OpCodes.Add)
Case "M"
ILout.Emit(OpCodes.Mul)
Case Else
ILout.Emit(OpCodes.Add)
End Select
Next y
End If
ILout.Emit(OpCodes.Ret)
End Sub
Public Shared Sub Main()
Dim myDomain As AppDomain = AppDomain.CurrentDomain
Dim asmName As New AssemblyName()
asmName.Name = "MyDynamicAsm"
Dim myAsmBuilder As AssemblyBuilder = myDomain.DefineDynamicAssembly(asmName, _
AssemblyBuilderAccess.RunAndSave)
Dim myModule As ModuleBuilder = myAsmBuilder.DefineDynamicModule("MyDynamicAsm", _
"MyDynamicAsm.dll")
Dim myTypeBld As TypeBuilder = myModule.DefineType("MyDynamicType", TypeAttributes.Public)
' Get info from the user to build the method dynamically.
Console.WriteLine("Let's build a simple method dynamically!")
Console.WriteLine("Please enter a few numbers, separated by spaces.")
Dim inputNums As String = Console.ReadLine()
Console.Write("Do you want to [A]dd (default) or [M]ultiply these numbers? ")
Dim myMthdAction As String = Console.ReadLine().ToUpper()
Console.Write("Lastly, what do you want to name your new dynamic method? ")
Dim myMthdName As String = Console.ReadLine()
' Process inputNums into an array and create a corresponding Type array
Dim index As Integer = 0
Dim inputNumsList As String() = inputNums.Split()
Dim myMthdParams(inputNumsList.Length - 1) As Type
Dim inputValsList(inputNumsList.Length - 1) As Object
Dim inputNum As String
For Each inputNum In inputNumsList
inputValsList(index) = CType(Convert.ToInt32(inputNum), Object)
myMthdParams(index) = GetType(Integer)
index += 1
Next inputNum
' Now, call the method building method with the parameters, passing the
' TypeBuilder by reference.
AddMethodDynamically(myTypeBld, myMthdName, myMthdParams, GetType(Integer), myMthdAction)
Dim myType As Type = myTypeBld.CreateType()
Dim description as String
If myMthdAction = "M" Then
description = "multiplying"
Else
description = "adding"
End If
Console.WriteLine("---")
Console.WriteLine("The result of {0} the values is: {1}", _
description, _
myType.InvokeMember(myMthdName, _
BindingFlags.InvokeMethod _
Or BindingFlags.Public _
Or BindingFlags.Static, _
Nothing, _
Nothing, _
inputValsList))
Console.WriteLine("---")
' If you are interested in seeing the MSIL generated dynamically for the method
' your program generated, change to the directory where you ran the compiled
' code sample and type "ildasm MyDynamicAsm.dll" at the prompt. When the list
' of manifest contents appears, click on "MyDynamicType" and then on the name of
' of the method you provided during execution.
myAsmBuilder.Save("MyDynamicAsm.dll")
Dim myMthdInfo As MethodInfo = myType.GetMethod(myMthdName)
Console.WriteLine("Your Dynamic Method: {0};", myMthdInfo.ToString())
End Sub
End Class
Uwagi
Klasa MethodBuilder jest używana do pełnego opisania metody w języku Microsoft Intermediate Language (MSIL), w tym nazwy, atrybutów, podpisu i treści metody. Jest on używany w połączeniu z klasą TypeBuilder do tworzenia klas w czasie wykonywania.
Metody globalne i metody jako elementy członkowskie typu
Można użyć emisji odbicia, aby zdefiniować metody globalne i zdefiniować metody jako składowe typu. Interfejsy API definiujące metody zwracają MethodBuilder obiekty.
Metody globalne
Metoda globalna jest definiowana ModuleBuilder.DefineGlobalMethod przy użyciu metody , która zwraca obiekt MethodBuilder .
Metody globalne muszą być statyczne. Jeśli moduł dynamiczny zawiera metody globalne, należy wywołać metodę przed utrwaleniem modułu dynamicznego lub zawierającego zestaw dynamiczny, ModuleBuilder.CreateGlobalFunctions ponieważ środowisko uruchomieniowe języka wspólnego odkłada naprawianie modułu dynamicznego do momentu zdefiniowania wszystkich funkcji globalnych.
Globalna metoda natywna jest definiowana ModuleBuilder.DefinePInvokeMethod przy użyciu metody . Metody wywołania platformy (PInvoke) nie mogą być deklarowane jako abstrakcyjne ani wirtualne. Środowisko uruchomieniowe ustawia MethodAttributes.PinvokeImpl atrybut dla metody wywołania platformy.
Metody jako elementy członkowskie typów
Metoda jest definiowana jako element członkowski typu przy użyciu TypeBuilder.DefineMethod metody , która zwraca MethodBuilder obiekt.
Metoda DefineParameter służy do ustawiania atrybutów nazwy i parametru parametru lub wartości zwracanej. ParameterBuilder Obiekt zwrócony przez tę metodę reprezentuje parametr lub wartość zwracaną. Obiekt ParameterBuilder może służyć do ustawiania marshalingu, ustawiania stałej wartości i stosowania atrybutów niestandardowych.
Atrybuty
MethodAttributes Składowe wyliczenia definiują dokładny znak metody dynamicznej:
Metody statyczne są określane przy użyciu atrybutu MethodAttributes.Static .
Metody końcowe (metody, których nie można zastąpić) są określane przy użyciu atrybutu MethodAttributes.Final .
Metody wirtualne są określane przy użyciu atrybutu MethodAttributes.Virtual .
Metody abstrakcyjne są określane przy użyciu atrybutu MethodAttributes.Abstract .
Kilka atrybutów określa widoczność metody. Zobacz opis MethodAttributes wyliczenia.
Metody implementujące przeciążone operatory muszą ustawić MethodAttributes.SpecialName atrybut .
Finalizatory muszą ustawić MethodAttributes.SpecialName atrybut .
Znane problemy
Chociaż MethodBuilder pochodzi z MethodInfoklasy , niektóre metody abstrakcyjne zdefiniowane w MethodInfo klasie nie są w pełni implementowane w programie MethodBuilder. Te MethodBuilder metody zgłaszają element NotSupportedException. Na przykład MethodBuilder.Invoke metoda nie jest w pełni zaimplementowana. Te metody można odzwierciedlić, pobierania otaczającego typu przy użyciu Type.GetType metod lub Assembly.GetType .
Modyfikatory niestandardowe są obsługiwane począwszy od .NET Framework w wersji 2.0. Nie są one obsługiwane we wcześniejszych wersjach.
Konstruktory
| MethodBuilder() |
Właściwości
| Attributes |
Pobiera atrybuty dla tej metody. |
| CallingConvention |
Zwraca konwencję wywoływania metody . |
| CallingConvention |
Pobiera wartość wskazującą konwencje wywoływania dla tej metody. (Odziedziczone po MethodBase) |
| ContainsGenericParameters |
Nieobsługiwane dla tego typu. |
| ContainsGenericParameters |
Pobiera wartość wskazującą, czy metoda ogólna zawiera nieprzypisane parametry typu ogólnego. (Odziedziczone po MethodInfo) |
| CustomAttributes |
Pobiera kolekcję zawierającą atrybuty niestandardowe tego elementu członkowskiego. (Odziedziczone po MemberInfo) |
| DeclaringType |
Zwraca typ, który deklaruje tę metodę. |
| InitLocals |
Pobiera lub ustawia wartość logiczną określającą, czy zmienne lokalne w tej metodzie są inicjowane przez zero. Wartość domyślna tej właściwości to |
| IsAbstract |
Pobiera wartość wskazującą, czy metoda jest abstrakcyjna. (Odziedziczone po MethodBase) |
| IsAssembly |
Pobiera wartość wskazującą, czy potencjalna widoczność tej metody lub konstruktora jest opisana przez Assemblymetodę , czyli metodę lub konstruktora jest widoczna co najwyżej dla innych typów w tym samym zestawie i nie jest widoczna dla typów pochodnych poza zestawem. (Odziedziczone po MethodBase) |
| IsCollectible |
Pobiera wartość wskazującą, czy ten MemberInfo obiekt jest częścią zestawu przechowywanego w obiekcie zbieralnym AssemblyLoadContext. (Odziedziczone po MemberInfo) |
| IsConstructedGenericMethod | |
| IsConstructedGenericMethod | (Odziedziczone po MethodBase) |
| IsConstructor |
Pobiera wartość wskazującą, czy metoda jest konstruktorem. (Odziedziczone po MethodBase) |
| IsFamily |
Pobiera wartość wskazującą, czy widoczność tej metody lub konstruktora jest opisana przez Familymetodę , czyli metodę lub konstruktor jest widoczna tylko w jej klasach i klasach pochodnych. (Odziedziczone po MethodBase) |
| IsFamilyAndAssembly |
Pobiera wartość wskazującą, czy widoczność tej metody lub konstruktora jest opisana przez FamANDAssemmetodę , czyli metodę lub konstruktor może być wywoływana przez klasy pochodne, ale tylko wtedy, gdy znajdują się w tym samym zestawie. (Odziedziczone po MethodBase) |
| IsFamilyOrAssembly |
Pobiera wartość wskazującą, czy potencjalna widoczność tej metody lub konstruktora jest opisana przez FamORAssemmetodę , czyli metodę lub konstruktora może być wywoływana przez klasy pochodne wszędzie tam, gdzie są, oraz według klas w tym samym zestawie. (Odziedziczone po MethodBase) |
| IsFinal |
Pobiera wartość wskazującą, czy ta metoda to |
| IsGenericMethod |
Pobiera wartość wskazującą, czy metoda jest metodą ogólną. |
| IsGenericMethod |
Pobiera wartość wskazującą, czy bieżąca metoda jest metodą ogólną. (Odziedziczone po MethodInfo) |
| IsGenericMethodDefinition |
Pobiera wartość wskazującą, czy bieżący MethodBuilder obiekt reprezentuje definicję metody ogólnej. |
| IsGenericMethodDefinition |
Pobiera wartość wskazującą, czy bieżący MethodInfo reprezentuje definicję metody ogólnej. (Odziedziczone po MethodInfo) |
| IsHideBySig |
Pobiera wartość wskazującą, czy tylko element członkowski tego samego rodzaju z dokładnie tym samym podpisem jest ukryty w klasie pochodnej. (Odziedziczone po MethodBase) |
| IsPrivate |
Pobiera wartość wskazującą, czy ten element członkowski jest prywatny. (Odziedziczone po MethodBase) |
| IsPublic |
Pobiera wartość wskazującą, czy jest to metoda publiczna. (Odziedziczone po MethodBase) |
| IsSecurityCritical |
Zgłasza wartość NotSupportedException we wszystkich przypadkach. |
| IsSecurityCritical |
Pobiera wartość wskazującą, czy bieżąca metoda lub konstruktor ma krytyczne znaczenie dla zabezpieczeń, czy bezpieczne zabezpieczenia na bieżącym poziomie zaufania, a w związku z tym może wykonywać operacje krytyczne. (Odziedziczone po MethodBase) |
| IsSecuritySafeCritical |
Zgłasza wartość NotSupportedException we wszystkich przypadkach. |
| IsSecuritySafeCritical |
Pobiera wartość wskazującą, czy bieżąca metoda lub konstruktor ma krytyczne znaczenie dla bezpieczeństwa na bieżącym poziomie zaufania; oznacza to, czy może wykonywać operacje krytyczne i można uzyskać do niego dostęp za pomocą przezroczystego kodu. (Odziedziczone po MethodBase) |
| IsSecurityTransparent |
Zgłasza wartość NotSupportedException we wszystkich przypadkach. |
| IsSecurityTransparent |
Pobiera wartość wskazującą, czy bieżąca metoda lub konstruktor jest przezroczysta na bieżącym poziomie zaufania, a zatem nie może wykonywać operacji krytycznych. (Odziedziczone po MethodBase) |
| IsSpecialName |
Pobiera wartość wskazującą, czy ta metoda ma specjalną nazwę. (Odziedziczone po MethodBase) |
| IsStatic |
Pobiera wartość wskazującą, czy metoda to |
| IsVirtual |
Pobiera wartość wskazującą, czy metoda to |
| MemberType |
Pobiera wartość wskazującą MemberTypes , że ten element członkowski jest metodą. (Odziedziczone po MethodInfo) |
| MetadataToken |
Pobiera token identyfikujący bieżący moduł dynamiczny w metadanych. |
| MetadataToken |
Pobiera wartość identyfikującą element metadanych. (Odziedziczone po MemberInfo) |
| MethodHandle |
Pobiera wewnętrzny uchwyt dla metody . Użyj tego uchwytu, aby uzyskać dostęp do bazowego uchwytu metadanych. |
| MethodHandle |
Pobiera uchwyt do wewnętrznej reprezentacji metadanych metody. (Odziedziczone po MethodBase) |
| MethodImplementationFlags | |
| MethodImplementationFlags |
MethodImplAttributes Pobiera flagi określające atrybuty implementacji metody. (Odziedziczone po MethodBase) |
| Module |
Pobiera moduł, w którym zdefiniowano bieżącą metodę. |
| Module |
Pobiera moduł, w którym typ, który deklaruje element członkowski reprezentowany przez bieżący MemberInfo jest zdefiniowany. (Odziedziczone po MemberInfo) |
| Name |
Pobiera nazwę tej metody. |
| ReflectedType |
Pobiera klasę, która została użyta w odbiciu w celu uzyskania tego obiektu. |
| ReflectedType |
Pobiera obiekt klasy, który został użyty do uzyskania tego wystąpienia klasy |
| ReturnParameter |
ParameterInfo Pobiera obiekt zawierający informacje o zwracanym typie metody, na przykład czy typ zwracany ma modyfikatory niestandardowe. |
| ReturnParameter |
ParameterInfo Pobiera obiekt zawierający informacje o zwracanym typie metody, na przykład czy typ zwracany ma modyfikatory niestandardowe. (Odziedziczone po MethodInfo) |
| ReturnType |
Pobiera zwracany typ metody reprezentowanej przez tę MethodBuildermetodę . |
| ReturnType |
Pobiera zwracany typ tej metody. (Odziedziczone po MethodInfo) |
| ReturnTypeCustomAttributes |
Zwraca atrybuty niestandardowe typu zwracanego metody. |
| ReturnTypeCustomAttributes |
Pobiera atrybuty niestandardowe dla typu zwracanego. (Odziedziczone po MethodInfo) |
| Signature |
Pobiera podpis metody . |
Metody
| AddDeclarativeSecurity(SecurityAction, PermissionSet) |
Dodaje zabezpieczenia deklaratywne do tej metody. |
| CreateDelegate(Type) |
Tworzy delegat określonego typu na podstawie tej metody. (Odziedziczone po MethodInfo) |
| CreateDelegate(Type, Object) |
Tworzy delegat określonego typu z określonym obiektem docelowym z tej metody. (Odziedziczone po MethodInfo) |
| CreateDelegate<T>() |
Tworzy delegata typu |
| CreateDelegate<T>(Object) |
Tworzy delegata typu |
| CreateMethodBody(Byte[], Int32) |
Tworzy treść metody przy użyciu dostarczonej tablicy bajtów instrukcji języka microsoft intermediate language (MSIL). |
| DefineGenericParameters(String[]) |
Ustawia liczbę parametrów typu ogólnego dla bieżącej metody, określa ich nazwy i zwraca tablicę GenericTypeParameterBuilder obiektów, które mogą służyć do definiowania ich ograniczeń. |
| DefineParameter(Int32, ParameterAttributes, String) |
Ustawia atrybuty parametru i nazwę parametru tej metody lub wartość zwracaną tej metody. Zwraca obiekt ParameterBuilder, który może służyć do stosowania atrybutów niestandardowych. |
| Equals(Object) |
Określa, czy dany obiekt jest równy temu wystąpieniu. |
| Equals(Object) |
Zwraca wartość wskazującą, czy to wystąpienie jest równe podanemu obiektowi. (Odziedziczone po MethodInfo) |
| GetBaseDefinition() |
Zwróć podstawową implementację dla metody . |
| GetBaseDefinition() |
Po zastąpieniu w klasie pochodnej zwraca MethodInfo obiekt dla metody w bezpośrednich lub pośrednich klasach bazowych, w której metoda reprezentowana przez to wystąpienie została po raz pierwszy zadeklarowana. (Odziedziczone po MethodInfo) |
| GetCustomAttributes(Boolean) |
Zwraca wszystkie atrybuty niestandardowe zdefiniowane dla tej metody. |
| GetCustomAttributes(Boolean) |
Po zastąpieniu w klasie pochodnej zwraca tablicę wszystkich atrybutów niestandardowych zastosowanych do tego elementu członkowskiego. (Odziedziczone po MemberInfo) |
| GetCustomAttributes(Type, Boolean) |
Zwraca atrybuty niestandardowe identyfikowane przez dany typ. |
| GetCustomAttributes(Type, Boolean) |
Po przesłonięciu w klasie pochodnej zwraca tablicę atrybutów niestandardowych zastosowanych do tego elementu członkowskiego i zidentyfikowaną przez Typeelement . (Odziedziczone po MemberInfo) |
| GetCustomAttributesData() |
Zwraca listę CustomAttributeData obiektów reprezentujących dane dotyczące atrybutów, które zostały zastosowane do elementu docelowego. (Odziedziczone po MemberInfo) |
| GetGenericArguments() |
Zwraca tablicę GenericTypeParameterBuilder obiektów reprezentujących parametry typu metody, jeśli jest ona ogólna. |
| GetGenericArguments() |
Zwraca tablicę Type obiektów reprezentujących argumenty typu metody ogólnej lub parametry typu definicji metody ogólnej. (Odziedziczone po MethodInfo) |
| GetGenericMethodDefinition() |
Zwraca tę metodę. |
| GetGenericMethodDefinition() |
Zwraca obiekt reprezentujący definicję MethodInfo metody ogólnej, z której można utworzyć bieżącą metodę. (Odziedziczone po MethodInfo) |
| GetHashCode() |
Pobiera kod skrótu dla tej metody. |
| GetHashCode() |
Zwraca wartość skrótu dla tego wystąpienia. (Odziedziczone po MethodInfo) |
| GetILGenerator() |
Zwraca wartość |
| GetILGenerator(Int32) |
Zwraca wartość |
| GetMethodBody() |
Po zastąpieniu w klasie pochodnej pobiera MethodBody obiekt, który zapewnia dostęp do strumienia MSIL, zmiennych lokalnych i wyjątków dla bieżącej metody. (Odziedziczone po MethodBase) |
| GetMethodImplementationFlags() |
Zwraca flagi implementacji dla metody . |
| GetMethodImplementationFlags() |
Po przesłonięciu MethodImplAttributes w klasie pochodnej zwraca flagi. (Odziedziczone po MethodBase) |
| GetModule() |
Zwraca odwołanie do modułu zawierającego tę metodę. |
| GetParameters() |
Zwraca parametry tej metody. |
| GetToken() |
|
| GetType() |
Odnajduje atrybuty metody i zapewnia dostęp do metadanych metody. (Odziedziczone po MethodInfo) |
| HasSameMetadataDefinitionAs(MemberInfo) | (Odziedziczone po MemberInfo) |
| Invoke(Object, BindingFlags, Binder, Object[], CultureInfo) |
Dynamicznie wywołuje metodę odzwierciedlaną przez to wystąpienie dla danego obiektu, przekazując wzdłuż określonych parametrów i pod ograniczeniami danego powiązania. |
| Invoke(Object, BindingFlags, Binder, Object[], CultureInfo) |
Podczas zastępowania w klasie pochodnej wywołuje odbitą metodę lub konstruktor z podanymi parametrami. (Odziedziczone po MethodBase) |
| Invoke(Object, Object[]) |
Wywołuje metodę lub konstruktor reprezentowany przez bieżące wystąpienie przy użyciu określonych parametrów. (Odziedziczone po MethodInfo) |
| IsDefined(Type, Boolean) |
Sprawdza, czy określony typ atrybutu niestandardowego jest zdefiniowany. |
| IsDefined(Type, Boolean) |
Po przesłonięciu w klasie pochodnej wskazuje, czy do tego elementu członkowskiego zastosowano co najmniej jeden atrybut określonego typu lub jego typów pochodnych. (Odziedziczone po MemberInfo) |
| MakeGenericMethod(Type[]) |
Zwraca metodę ogólną skonstruowaną z bieżącej definicji metody ogólnej przy użyciu określonych argumentów typu ogólnego. |
| MakeGenericMethod(Type[]) |
Zastępuje elementy tablicy typów dla parametrów typu bieżącej definicji metody ogólnej i zwraca obiekt reprezentujący wynikową skonstruowaną metodę MethodInfo . (Odziedziczone po MethodInfo) |
| MemberwiseClone() |
Tworzy płytkią kopię bieżącego Objectelementu . (Odziedziczone po Object) |
| SetCustomAttribute(ConstructorInfo, Byte[]) |
Ustawia atrybut niestandardowy przy użyciu określonego obiektu blob atrybutu niestandardowego. |
| SetCustomAttribute(CustomAttributeBuilder) |
Ustawia atrybut niestandardowy przy użyciu konstruktora atrybutów niestandardowych. |
| SetImplementationFlags(MethodImplAttributes) |
Ustawia flagi implementacji dla tej metody. |
| SetMarshal(UnmanagedMarshal) |
Nieaktualne.
Nieaktualne.
Ustawia marshaling informacji dla zwracanego typu tej metody. |
| SetMethodBody(Byte[], Int32, Byte[], IEnumerable<ExceptionHandler>, IEnumerable<Int32>) |
Tworzy treść metody przy użyciu określonej tablicy bajtów instrukcji języka microsoft intermediate language (MSIL). |
| SetParameters(Type[]) |
Ustawia liczbę i typy parametrów dla metody. |
| SetReturnType(Type) |
Ustawia zwracany typ metody. |
| SetSignature(Type, Type[], Type[], Type[], Type[][], Type[][]) |
Ustawia sygnaturę metody, w tym typ zwracany, typy parametrów oraz wymagane i opcjonalne modyfikatory niestandardowe typów zwracanych typów i parametrów. |
| SetSymCustomAttribute(String, Byte[]) |
Ustaw symboliczny atrybut niestandardowy przy użyciu obiektu blob. |
| ToString() |
Zwraca to |
| ToString() |
Zwraca ciąg reprezentujący bieżący obiekt. (Odziedziczone po Object) |
Jawne implementacje interfejsu
| _MemberInfo.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) |
Zestaw nazw jest mapowany na odpowiedni zestaw identyfikatorów wysyłania. (Odziedziczone po MemberInfo) |
| _MemberInfo.GetType() |
Type Pobiera obiekt reprezentujący klasęMemberInfo. (Odziedziczone po MemberInfo) |
| _MemberInfo.GetTypeInfo(UInt32, UInt32, IntPtr) |
Pobiera informacje o typie dla obiektu, których następnie można użyć do uzyskania informacji o typie interfejsu. (Odziedziczone po MemberInfo) |
| _MemberInfo.GetTypeInfoCount(UInt32) |
Pobiera informację o liczbie typów interfejsów, jakie zawiera obiekt (0 lub 1). (Odziedziczone po MemberInfo) |
| _MemberInfo.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) |
Umożliwia dostęp do właściwości i metod udostępnianych przez obiekt. (Odziedziczone po MemberInfo) |
| _MethodBase.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) |
Zestaw nazw jest mapowany na odpowiedni zestaw identyfikatorów wysyłania. (Odziedziczone po MethodBase) |
| _MethodBase.GetType() |
Aby uzyskać opis tego elementu członkowskiego, zobacz GetType(). (Odziedziczone po MethodBase) |
| _MethodBase.GetTypeInfo(UInt32, UInt32, IntPtr) |
Pobiera informacje o typie dla obiektu, których następnie można użyć do uzyskania informacji o typie interfejsu. (Odziedziczone po MethodBase) |
| _MethodBase.GetTypeInfoCount(UInt32) |
Pobiera informację o liczbie typów interfejsów, jakie zawiera obiekt (0 lub 1). (Odziedziczone po MethodBase) |
| _MethodBase.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) |
Umożliwia dostęp do właściwości i metod udostępnianych przez obiekt. (Odziedziczone po MethodBase) |
| _MethodBase.IsAbstract |
Aby uzyskać opis tego elementu członkowskiego, zobacz IsAbstract. (Odziedziczone po MethodBase) |
| _MethodBase.IsAssembly |
Aby uzyskać opis tego elementu członkowskiego, zobacz IsAssembly. (Odziedziczone po MethodBase) |
| _MethodBase.IsConstructor |
Aby uzyskać opis tego elementu członkowskiego, zobacz IsConstructor. (Odziedziczone po MethodBase) |
| _MethodBase.IsFamily |
Aby uzyskać opis tego elementu członkowskiego, zobacz IsFamily. (Odziedziczone po MethodBase) |
| _MethodBase.IsFamilyAndAssembly |
Aby uzyskać opis tego elementu członkowskiego, zobacz IsFamilyAndAssembly. (Odziedziczone po MethodBase) |
| _MethodBase.IsFamilyOrAssembly |
Aby uzyskać opis tego elementu członkowskiego, zobacz IsFamilyOrAssembly. (Odziedziczone po MethodBase) |
| _MethodBase.IsFinal |
Aby uzyskać opis tego elementu członkowskiego, zobacz IsFinal. (Odziedziczone po MethodBase) |
| _MethodBase.IsHideBySig |
Aby uzyskać opis tego elementu członkowskiego, zobacz IsHideBySig. (Odziedziczone po MethodBase) |
| _MethodBase.IsPrivate |
Aby uzyskać opis tego elementu członkowskiego, zobacz IsPrivate. (Odziedziczone po MethodBase) |
| _MethodBase.IsPublic |
Aby uzyskać opis tego elementu członkowskiego, zobacz IsPublic. (Odziedziczone po MethodBase) |
| _MethodBase.IsSpecialName |
Aby uzyskać opis tego elementu członkowskiego, zobacz IsSpecialName. (Odziedziczone po MethodBase) |
| _MethodBase.IsStatic |
Aby uzyskać opis tego elementu członkowskiego, zobacz IsStatic. (Odziedziczone po MethodBase) |
| _MethodBase.IsVirtual |
Aby uzyskać opis tego członka, zobacz IsVirtual. (Odziedziczone po MethodBase) |
| _MethodBuilder.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) |
Zestaw nazw jest mapowany na odpowiedni zestaw identyfikatorów wysyłania. |
| _MethodBuilder.GetTypeInfo(UInt32, UInt32, IntPtr) |
Pobiera informacje o typie dla obiektu, których następnie można użyć do uzyskania informacji o typie interfejsu. |
| _MethodBuilder.GetTypeInfoCount(UInt32) |
Pobiera informację o liczbie typów interfejsów, jakie zawiera obiekt (0 lub 1). |
| _MethodBuilder.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) |
Umożliwia dostęp do właściwości i metod udostępnianych przez obiekt. |
| _MethodInfo.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) |
Zestaw nazw jest mapowany na odpowiedni zestaw identyfikatorów wysyłania. (Odziedziczone po MethodInfo) |
| _MethodInfo.GetType() |
Zapewnia dostęp do GetType() metody z modelu COM. (Odziedziczone po MethodInfo) |
| _MethodInfo.GetTypeInfo(UInt32, UInt32, IntPtr) |
Pobiera informacje o typie dla obiektu, który może służyć do pobierania informacji o typie dla interfejsu. (Odziedziczone po MethodInfo) |
| _MethodInfo.GetTypeInfoCount(UInt32) |
Pobiera informację o liczbie typów interfejsów, jakie zawiera obiekt (0 lub 1). (Odziedziczone po MethodInfo) |
| _MethodInfo.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) |
Umożliwia dostęp do właściwości i metod udostępnianych przez obiekt. (Odziedziczone po MethodInfo) |
| ICustomAttributeProvider.GetCustomAttributes(Boolean) |
Zwraca tablicę wszystkich atrybutów niestandardowych zdefiniowanych w tym elemencie członkowskim, z wyłączeniem nazwanych atrybutów lub pustą tablicą, jeśli nie ma atrybutów niestandardowych. (Odziedziczone po MemberInfo) |
| ICustomAttributeProvider.GetCustomAttributes(Type, Boolean) |
Zwraca tablicę atrybutów niestandardowych zdefiniowanych na tym elemencie członkowskim, identyfikowaną przez typ lub pustą tablicę, jeśli nie ma atrybutów niestandardowych tego typu. (Odziedziczone po MemberInfo) |
| ICustomAttributeProvider.IsDefined(Type, Boolean) |
Wskazuje, czy na tym elemencie członkowskim zdefiniowano jedno lub więcej wystąpień |
Metody rozszerzania
| GetCustomAttribute(MemberInfo, Type) |
Pobiera atrybut niestandardowy określonego typu, który jest stosowany do określonego elementu członkowskiego. |
| GetCustomAttribute(MemberInfo, Type, Boolean) |
Pobiera atrybut niestandardowy określonego typu, który jest stosowany do określonego elementu członkowskiego, i opcjonalnie sprawdza elementów podrzędnych tego elementu członkowskiego. |
| GetCustomAttribute<T>(MemberInfo) |
Pobiera atrybut niestandardowy określonego typu, który jest stosowany do określonego elementu członkowskiego. |
| GetCustomAttribute<T>(MemberInfo, Boolean) |
Pobiera atrybut niestandardowy określonego typu, który jest stosowany do określonego elementu członkowskiego, i opcjonalnie sprawdza elementów podrzędnych tego elementu członkowskiego. |
| GetCustomAttributes(MemberInfo) |
Pobiera kolekcję atrybutów niestandardowych, które są stosowane do określonego elementu członkowskiego. |
| GetCustomAttributes(MemberInfo, Boolean) |
Pobiera kolekcję atrybutów niestandardowych, które są stosowane do określonego elementu członkowskiego, i opcjonalnie sprawdza elementy charakterystyczne tego elementu członkowskiego. |
| GetCustomAttributes(MemberInfo, Type) |
Pobiera kolekcję atrybutów niestandardowych określonego typu, które są stosowane do określonego elementu członkowskiego. |
| GetCustomAttributes(MemberInfo, Type, Boolean) |
Pobiera kolekcję atrybutów niestandardowych określonego typu, które są stosowane do określonego elementu członkowskiego, i opcjonalnie sprawdza elementów podrzędnych tego elementu członkowskiego. |
| GetCustomAttributes<T>(MemberInfo) |
Pobiera kolekcję atrybutów niestandardowych określonego typu, które są stosowane do określonego elementu członkowskiego. |
| GetCustomAttributes<T>(MemberInfo, Boolean) |
Pobiera kolekcję atrybutów niestandardowych określonego typu, które są stosowane do określonego elementu członkowskiego, i opcjonalnie sprawdza elementów podrzędnych tego elementu członkowskiego. |
| IsDefined(MemberInfo, Type) |
Wskazuje, czy atrybuty niestandardowe określonego typu są stosowane do określonego elementu członkowskiego. |
| IsDefined(MemberInfo, Type, Boolean) |
Wskazuje, czy atrybuty niestandardowe określonego typu są stosowane do określonego elementu członkowskiego, a opcjonalnie stosowane do jego elementów nadrzędnych. |
| GetMetadataToken(MemberInfo) |
Pobiera token metadanych dla danego elementu członkowskiego, jeśli jest dostępny. |
| HasMetadataToken(MemberInfo) |
Zwraca wartość wskazującą, czy token metadanych jest dostępny dla określonego elementu członkowskiego. |
| GetBaseDefinition(MethodInfo) | |
| GetRuntimeBaseDefinition(MethodInfo) |
Pobiera obiekt reprezentujący określoną metodę w bezpośrednich lub pośrednich klasach bazowych, w których metoda została po raz pierwszy zadeklarowana. |