Sdílet prostřednictvím


UnmanagedCallersOnlyAttribute Třída

Definice

Libovolnou metodu označenou UnmanagedCallersOnlyAttribute pomocí lze volat přímo z nativního kódu. Token funkce je možné načíst do místní proměnné pomocí operátoru address-of v jazyce C# a předat ho jako zpětné volání nativní metodě.

public ref class UnmanagedCallersOnlyAttribute sealed : Attribute
[System.AttributeUsage(System.AttributeTargets.Method, Inherited=false)]
public sealed class UnmanagedCallersOnlyAttribute : Attribute
[<System.AttributeUsage(System.AttributeTargets.Method, Inherited=false)>]
type UnmanagedCallersOnlyAttribute = class
    inherit Attribute
Public NotInheritable Class UnmanagedCallersOnlyAttribute
Inherits Attribute
Dědičnost
UnmanagedCallersOnlyAttribute
Atributy

Příklady

Následující příklad ukazuje předání zpětného volání označeného UnmanagedCallersOnlyAttribute nativní funkci.

[DllImport("NativeLibrary")]
internal static extern unsafe void NativeFunctionWithCallback(delegate* unmanaged[Cdecl]<int, int> callback);

[UnmanagedCallersOnly(CallConvs = new[] { typeof(CallConvCdecl) })]
private static int DoubleInt(int i) => i * 2;

public static unsafe void PassCallbackToNativeFunction()
{
    NativeFunctionWithCallback(&DoubleInt);
}

Poznámky

Metody označené tímto atributem mají následující omezení:

  • Musí být označený static.
  • Nesmí být volána ze spravovaného kódu.
  • Musí obsahovat pouze blitelné argumenty.
  • Nesmí mít parametry obecného typu ani být obsaženy v obecné třídě.

Konstruktory

UnmanagedCallersOnlyAttribute()

Inicializuje novou UnmanagedCallersOnlyAttribute instanci.

Pole

CallConvs

Nepovinný parametr. Pokud ho vynecháte, modul runtime použije výchozí konvenci volání platformy.

EntryPoint

Nepovinný parametr. Pokud tento parametr vynecháte, během kompilace se nevygeneruje žádný pojmenovaný export.

Vlastnosti

TypeId

Při implementaci v odvozené třídě získá jedinečný identifikátor pro tuto Attributetřídu .

(Zděděno od Attribute)

Metody

Equals(Object)

Vrací hodnotu, která určuje, zda je tato instance rovna zadanému objektu.

(Zděděno od Attribute)
GetHashCode()

Vrátí hodnotu hash pro tuto instanci.

(Zděděno od Attribute)
GetType()

Type Získá z aktuální instance.

(Zděděno od Object)
IsDefaultAttribute()

Při přepsání v odvozené třídě označuje, zda je hodnota této instance výchozí hodnotou pro odvozenou třídu.

(Zděděno od Attribute)
Match(Object)

Při přepsání v odvozené třídě vrátí hodnotu, která označuje, zda se tato instance rovná zadanému objektu.

(Zděděno od Attribute)
MemberwiseClone()

Vytvoří mělkou kopii aktuálního Objectsouboru .

(Zděděno od Object)
ToString()

Vrátí řetězec, který představuje aktuální objekt.

(Zděděno od Object)

Platí pro