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 abstract : System::Reflection::MethodInfo
public ref class MethodBuilder sealed : System::Reflection::MethodInfo
public ref class MethodBuilder sealed : System::Reflection::MethodInfo, System::Runtime::InteropServices::_MethodBuilder
public abstract class MethodBuilder : 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
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 MustInherit Class MethodBuilder
Inherits MethodInfo
Public NotInheritable Class MethodBuilder
Inherits MethodInfo
Public NotInheritable Class MethodBuilder
Inherits MethodInfo
Implements _MethodBuilder
- Dziedziczenie
- Atrybuty
- Implementuje
Przykłady
W poniższym przykładzie użyto MethodBuilder klasy do utworzenia metody w typie dynamicznym.
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 służy do pełnego opisywania metody w typowym języku pośrednim (CIL), 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.
Możesz użyć Reflection Emit do definiowania metod globalnych i definiowania metod jako członków typu. API definiujące metody zwracają MethodBuilder obiekty.
Metody globalne
Metoda globalna jest definiowana za pomocą metody ModuleBuilder.DefineGlobalMethod, która zwraca obiekt MethodBuilder.
Metody globalne muszą być statyczne. Jeśli moduł dynamiczny zawiera metody globalne, należy wywołać metodę ModuleBuilder.CreateGlobalFunctions przed utrwaleniem modułu dynamicznego lub zestawu dynamicznego zawierającego ten moduł, ponieważ środowisko uruchomieniowe języka wspólnego odkłada naprawianie modułu dynamicznego do momentu zdefiniowania wszystkich funkcji globalnych.
Globalna metoda natywna jest definiowana przy użyciu metody ModuleBuilder.DefinePInvokeMethod. Metody wywołania platformy (PInvoke) nie mogą być deklarowane jako abstrakcyjne ani wirtualne. Środowisko uruchomieniowe ustawia MethodAttributes.PinvokeImpl atrybut dla metody wywołującej platformę.
Metody jako członkowie 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.
Attributes
Składowe wyliczenia MethodAttributes definiują dokładny charakter metody dynamicznej.
- Metody statyczne są określane przy użyciu atrybutu MethodAttributes.Static .
- Ostateczne metody (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 zaimplementowane w pliku MethodBuilder. Te MethodBuilder metody rzucają NotSupportedException. Na przykład MethodBuilder.Invoke metoda nie jest w pełni zaimplementowana. Te metody można rozważyć, pobierając typ otaczający przy użyciu metod Type.GetType lub Assembly.GetType.
- Modyfikatory niestandardowe są obsługiwane.
Konstruktory
| Nazwa | Opis |
|---|---|
| MethodBuilder() |
Inicjuje nowe wystąpienie klasy MethodBuilder. |
Właściwości
| Nazwa | Opis |
|---|---|
| Attributes |
Pobiera atrybuty dla tej metody. |
| CallingConvention |
Zwraca konwencję wywoływania metody . |
| ContainsGenericParameters |
Nieobsługiwane dla tego typu. |
| 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ą zerowe. Wartość domyślna tej właściwości to |
| InitLocalsCore |
Po zastąpieniu w klasie pochodnej pobiera lub ustawia wartość wskazującą, czy zmienne lokalne w tej metodzie są inicjowane zero. |
| 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 odwołuje się do co najmniej jednego zestawu przechowywanego w kolekcji AssemblyLoadContext. (Odziedziczone po MemberInfo) |
| IsConstructedGenericMethod |
Definiuje i reprezentuje metodę (lub konstruktor) w klasie dynamicznej. |
| IsConstructedGenericMethod |
Definiuje i reprezentuje metodę (lub konstruktor) w klasie dynamicznej. (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 konstruktora jest widoczna tylko w jej klasie 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 konstruktor może być wywoływana przez klasy pochodne wszędzie tam, gdzie są, oraz przez klasy 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ą. |
| IsGenericMethodDefinition |
Pobiera wartość wskazującą, czy bieżący MethodBuilder obiekt reprezentuje definicję metody ogólnej. |
| IsHideBySig |
Pobiera wartość wskazującą, czy tylko składowa tego samego rodzaju z dokładnie tym samym podpisem jest ukryta 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 bezpieczeństwo krytyczne 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 i dlatego 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 dojścia do podstawowych metadanych. |
| MethodImplementationFlags |
Definiuje i reprezentuje metodę (lub konstruktor) w klasie dynamicznej. |
| MethodImplementationFlags |
MethodImplAttributes Pobiera flagi określające atrybuty implementacji metody. (Odziedziczone po MethodBase) |
| Module |
Pobiera moduł, w którym jest definiowana bieżąca metoda. |
| Module |
Pobiera moduł, w którym zdefiniowano typ, który deklaruje element członkowski reprezentowany przez bieżący MemberInfo . (Odziedziczone po MemberInfo) |
| Name |
Pobiera nazwę tej metody. |
| ReflectedType |
Pobiera klasę, która została użyta w odbiciu w celu uzyskania tego obiektu. |
| ReturnParameter |
ParameterInfo Pobiera obiekt zawierający informacje o zwracanym typie metody, na przykład czy typ zwracany ma modyfikatory niestandardowe. |
| ReturnType |
Pobiera zwracany typ metody reprezentowanej przez ten MethodBuilderelement . |
| 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
| Nazwa | Opis |
|---|---|
| AddDeclarativeSecurity(SecurityAction, PermissionSet) |
Dodaje zabezpieczenia deklaratywne do tej metody. |
| CreateDelegate(Type, Object) |
Tworzy delegat określonego typu z określoną wartością docelową z tej metody. (Odziedziczone po MethodInfo) |
| CreateDelegate(Type) |
Tworzy delegat określonego typu z tej metody. (Odziedziczone po MethodInfo) |
| CreateDelegate<T>() |
Tworzy delegata typu |
| CreateDelegate<T>(Object) |
Tworzy delegat typu |
| CreateMethodBody(Byte[], Int32) |
Tworzy treść metody przy użyciu dostarczonej tablicy bajtów instrukcji języka Microsoft pośredniego (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órych można użyć do zdefiniowania ich ograniczeń. |
| DefineGenericParametersCore(String[]) |
Po zastąpieniu w klasie pochodnej 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 ograniczeń. |
| DefineParameter(Int32, ParameterAttributes, String) |
Ustawia atrybuty parametru i nazwę parametru tej metody lub zwracaną wartość tej metody. Zwraca obiekt ParameterBuilder, który może służyć do stosowania atrybutów niestandardowych. |
| DefineParameterCore(Int32, ParameterAttributes, String) |
Po zastąpieniu w klasie pochodnej definiuje parametr lub parametr zwracany dla tej metody. |
| Equals(Object) |
Określa, czy dany obiekt jest równy temu wystąpieniu. |
| GetBaseDefinition() |
Zwróć podstawową implementację metody . |
| GetBaseDefinition() |
Po zastąpieniu w klasie pochodnej zwraca MethodInfo obiekt dla metody w bezpośrednich lub pośrednich klasach bazowych, w których 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(Type, Boolean) |
Zwraca atrybuty niestandardowe identyfikowane przez dany typ. |
| GetCustomAttributesData() |
Zwraca listę CustomAttributeData obiektów reprezentujących dane dotyczące atrybutów zastosowanych do elementu członkowskiego docelowego. (Odziedziczone po MemberInfo) |
| GetGenericArguments() |
Zwraca tablicę GenericTypeParameterBuilder obiektów reprezentujących parametry typu metody, jeśli jest ona ogólna. |
| GetGenericMethodDefinition() |
Zwraca tę metodę. |
| GetHashCode() |
Pobiera kod skrótu dla tej metody. |
| GetILGenerator() |
Zwraca |
| GetILGenerator(Int32) |
Zwraca |
| GetILGeneratorCore(Int32) |
Po zastąpieniu w klasie pochodnej pobiera element ILGenerator , który może służyć do emitowania treści metody dla tej metody. |
| 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 zastąpieniu w klasie pochodnej zwraca MethodImplAttributes 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) |
Definiuje i reprezentuje metodę (lub konstruktor) w klasie dynamicznej. (Odziedziczone po MemberInfo) |
| Invoke(Object, BindingFlags, Binder, Object[], CultureInfo) |
Dynamicznie wywołuje metodę odzwierciedlona przez to wystąpienie dla danego obiektu, przekazując wzdłuż określonych parametrów i pod ograniczeniami danego powiązania. |
| 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. |
| MakeGenericMethod(Type[]) |
Zwraca metodę ogólną skonstruowaną z bieżącej definicji metody ogólnej przy użyciu określonych argumentów typu ogólnego. |
| MemberwiseClone() |
Tworzy płytkią kopię bieżącego Object. (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. |
| SetCustomAttributeCore(ConstructorInfo, ReadOnlySpan<Byte>) |
Po zastąpieniu w klasie pochodnej ustawia atrybut niestandardowy dla tego zestawu. |
| SetImplementationFlags(MethodImplAttributes) |
Ustawia flagi implementacji dla tej metody. |
| SetImplementationFlagsCore(MethodImplAttributes) |
Po zastąpieniu w klasie pochodnej ustawia flagi implementacji dla tej metody. |
| SetMarshal(UnmanagedMarshal) |
Przestarzałe.
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 pośredniego (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 zwracanego typu i typów parametrów. |
| SetSignatureCore(Type, Type[], Type[], Type[], Type[][], Type[][]) |
Po zastąpieniu w klasie pochodnej 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 |
Jawne implementacje interfejsu
| Nazwa | Opis |
|---|---|
| _MemberInfo.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) |
Zestaw nazw jest mapowany na odpowiedni zestaw identyfikatorów wysyłania. (Odziedziczone po MemberInfo) |
| _MemberInfo.GetType() |
Pobiera obiekt reprezentujący klasę TypeMemberInfo . (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) |
Zapewnia dostęp do właściwości i metod uwidocznionych 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) |
Zapewnia dostęp do właściwości i metod uwidocznionych 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 elementu członkowskiego, 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) |
Zapewnia dostęp do właściwości i metod uwidocznionych 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 obiektu, którego można użyć do uzyskania 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) |
Zapewnia dostęp do właściwości i metod uwidocznionych 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 pustej tablicy, 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, zidentyfikowaną 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 |
Metody rozszerzania
| Nazwa | Opis |
|---|---|
| GetBaseDefinition(MethodInfo) |
Definiuje i reprezentuje metodę (lub konstruktor) w klasie dynamicznej. |
| GetCustomAttribute(MemberInfo, Type, Boolean) |
Pobiera atrybut niestandardowy określonego typu, który jest stosowany do określonego elementu członkowskiego, i opcjonalnie sprawdza przodków tego elementu członkowskiego. |
| GetCustomAttribute(MemberInfo, Type) |
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 przodków tego elementu członkowskiego. |
| GetCustomAttribute<T>(MemberInfo) |
Pobiera atrybut niestandardowy określonego typu, który jest stosowany 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 przodków tego 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 przodków 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) |
Pobiera kolekcję atrybutów niestandardowych, 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 przodków 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. |
| GetMetadataToken(MemberInfo) |
Pobiera token metadanych dla danego elementu członkowskiego, jeśli jest dostępny. |
| 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. |
| HasMetadataToken(MemberInfo) |
Zwraca wartość wskazującą, czy token metadanych jest dostępny dla 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. |
| IsDefined(MemberInfo, Type) |
Wskazuje, czy atrybuty niestandardowe określonego typu są stosowane do określonego elementu członkowskiego. |