Udostępnij za pośrednictwem


System. Emocje ion. Emit.MethodBuilder, klasa

Ten artykuł zawiera dodatkowe uwagi dotyczące dokumentacji referencyjnej dla tego interfejsu API.

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ć emisji odbicia, aby zdefiniować metody globalne i zdefiniować metody jako elementy członkowskie typu. Interfejsy API definiujące metody zwracają MethodBuilder obiekty.

Metody globalne

Metoda globalna jest definiowana ModuleBuilder.DefineGlobalMethod przy użyciu metody , która zwraca MethodBuilder obiekt.

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 czasu 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:

Znane problemy