Sdílet prostřednictvím


Systému. Reflexe ion. Emit.MethodBuilder – třída

Tento článek obsahuje doplňující poznámky k referenční dokumentaci pro toto rozhraní API.

Třída MethodBuilder se používá k úplnému popisu metody v common intermediate language (CIL), včetně názvu, atributů, podpisu a textu metody. Používá se ve spojení s TypeBuilder třídou k vytváření tříd za běhu.

Pomocí generování reflexe můžete definovat globální metody a definovat metody jako členy typu. Rozhraní API definující metody vracejí MethodBuilder objekty.

Globální metody

Globální metoda je definována pomocí ModuleBuilder.DefineGlobalMethod metody, která vrací MethodBuilder objekt.

Globální metody musí být statické. Pokud dynamický modul obsahuje globální metody, ModuleBuilder.CreateGlobalFunctions musí být volána metoda před zachováním dynamického modulu nebo obsahujícího dynamické sestavení, protože modul CLR odloží opravu dynamického modulu, dokud nebudou definovány všechny globální funkce.

Globální nativní metoda je definována pomocí ModuleBuilder.DefinePInvokeMethod metody. Metody volání platformy (PInvoke) nesmí být deklarovány jako abstraktní nebo virtuální. Modul runtime nastaví MethodAttributes.PinvokeImpl atribut pro metodu vyvolání platformy.

Metody jako členy typů

Metoda je definována jako člen typu pomocí TypeBuilder.DefineMethod metody, která vrací MethodBuilder objekt.

Metoda DefineParameter se používá k nastavení atributů názvu a parametru parametru nebo návratové hodnoty. Objekt ParameterBuilder vrácený touto metodou představuje parametr nebo návratovou hodnotu. Objekt ParameterBuilder lze použít k nastavení zařazování, nastavení konstantní hodnoty a použití vlastních atributů.

Atributy

Členové výčtu MethodAttributes definují přesný znak dynamické metody:

Známé problémy