MethodBuilder.SetImplementationFlags(MethodImplAttributes) Metoda

Definice

Nastaví příznaky implementace pro tuto metodu.

public void SetImplementationFlags(System.Reflection.MethodImplAttributes attributes);

Parametry

attributes
MethodImplAttributes

Příznaky implementace, které se mají nastavit.

Výjimky

Obsahující typ byl dříve vytvořen pomocí .CreateType()

-nebo-

Pro aktuální metodu IsGenericMethod je truevlastnost , ale IsGenericMethodDefinition vlastnost je false.

Příklady

Následující ukázka kódu znázorňuje kontextové použití SetImplementationFlags metody k popisu implementace jazyka MSIL v těle metody.

MethodBuilder myMthdBuilder = myTypeBuilder.DefineMethod("MyMethod",
                    MethodAttributes.Public,
                    CallingConventions.HasThis,
                    typeof(int),
                    new Type[] { typeof(int),
                             typeof(int) });	

// Specifies that the dynamic method declared above has a an MSIL implementation,
    // is managed, synchronized (single-threaded) through the body, and that it
// cannot be inlined.

myMthdBuilder.SetImplementationFlags(MethodImplAttributes.IL |
                     MethodImplAttributes.Managed |
                     MethodImplAttributes.Synchronized |
                     MethodImplAttributes.NoInlining);

// Create an ILGenerator for the MethodBuilder and emit MSIL here ...

Poznámky

Při použití SetImplementationFlags metody v kombinaci s metodou SetCustomAttribute mějte na paměti potenciální interakce. Například použití SetCustomAttribute metody pro přidání atributu DllImportAttribute také nastaví MethodImplAttributes.PreserveSig příznak. Pokud následně zavoláte metodu SetImplementationFlags , PreserveSig příznak se přepíše. Existují dva způsoby, jak se tomu vyhnout:

Platí pro

Produkt Verze
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9, 10
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0 (package-provided), 2.1