System.Reflection.Emit.MethodBuilder-klass

Anmärkning

Den här artikeln innehåller ytterligare kommentarer till referensdokumentationen för det här API:et.

Klassen MethodBuilder används för att helt beskriva en metod i det gemensamma mellanliggande språket (CIL), inklusive namn, attribut, signatur och metodtext. Den används tillsammans med TypeBuilder, klassen för att skapa klasser under körning.

Du kan använda reflektionsemitta för att definiera globala metoder och definiera metoder som typmedlemmar. DE API:er som definierar metoder returnerar MethodBuilder objekt.

Globala metoder

En global metod definieras med hjälp av ModuleBuilder.DefineGlobalMethod-metoden, som returnerar ett MethodBuilder-objekt.

Globala metoder måste vara statiska. Om en dynamisk modul innehåller globala metoder ModuleBuilder.CreateGlobalFunctions måste metoden anropas innan den dynamiska modulen bevaras eller den innehållande dynamiska sammansättningen eftersom den gemensamma språkkörningen skjuter upp fixeringen av den dynamiska modulen tills alla globala funktioner har definierats.

En global inbyggd metod definieras med hjälp av ModuleBuilder.DefinePInvokeMethod. PInvoke-metoder (platform invoke) får inte deklareras som abstrakta eller virtuella. Körmiljön ställer in MethodAttributes.PinvokeImpl-attributet för en plattformsanropsmetod.

Metoder som medlemmar i typer

En metod definieras som en typmedlem genom att använda TypeBuilder.DefineMethod metoden, vilken returnerar ett MethodBuilder objekt.

Metoden DefineParameter används för att ange namn- och parameterattribut för en parameter eller för returvärdet. Objektet ParameterBuilder som returneras med den här metoden representerar en parameter eller returvärdet. Objektet ParameterBuilder kan användas för att ange marshaling, för att ange konstantvärdet och för att tillämpa anpassade attribut.

Egenskaper

Medlemmar i MethodAttributes uppräkningen definierar det exakta tecknet för en dynamisk metod:

Kända problemområden