UnmanagedCallersOnlyAttribute Klasse

Definition

Jede mit UnmanagedCallersOnlyAttribute gekennzeichnete Methode kann direkt aus systemeigenem Code aufgerufen werden. Das Funktionstoken kann mithilfe der Adresse des Operators in C# in eine lokale Variable geladen und als Rückruf an eine systemeigene Methode übergeben werden.

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
Vererbung
UnmanagedCallersOnlyAttribute
Attribute

Beispiele

Das folgende Beispiel veranschaulicht das Übergeben eines Rückrufs, der an eine systemeigene Funktion markiert ist UnmanagedCallersOnlyAttribute .

[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);
}

Hinweise

Methoden, die mit diesem Attribut gekennzeichnet sind, weisen die folgenden Einschränkungen auf:

  • Muss markiert staticsein.
  • Darf nicht aus verwaltetem Code aufgerufen werden.
  • Darf nur blittbare Argumente haben.
  • Darf keine generischen Typparameter enthalten oder in einer generischen Klasse enthalten sein.

Konstruktoren

Name Beschreibung
UnmanagedCallersOnlyAttribute()

Initialisiert eine neue Instanz von UnmanagedCallersOnlyAttribute.

Felder

Name Beschreibung
CallConvs

Dies ist optional. Wenn sie weggelassen wird, verwendet die Laufzeit die Standardkonvention für Plattformaufrufe.

EntryPoint

Dies ist optional. Ohne Angabe wird während der Kompilierung kein benannter Export ausgegeben.

Eigenschaften

Name Beschreibung
TypeId

Wenn sie in einer abgeleiteten Klasse implementiert wird, wird ein eindeutiger Bezeichner für diese Attribute.

(Geerbt von Attribute)

Methoden

Name Beschreibung
Equals(Object)

Gibt einen Wert zurück, der angibt, ob diese Instanz einem angegebenen Objekt entspricht.

(Geerbt von Attribute)
GetHashCode()

Gibt den Hashcode für diesen instance zurück.

(Geerbt von Attribute)
GetType()

Ruft die Type der aktuellen Instanz ab.

(Geerbt von Object)
IsDefaultAttribute()

Wenn sie in einer abgeleiteten Klasse überschrieben wird, gibt an, ob der Wert dieser Instanz der Standardwert für die abgeleitete Klasse ist.

(Geerbt von Attribute)
Match(Object)

Wenn sie in einer abgeleiteten Klasse überschrieben wird, wird ein Wert zurückgegeben, der angibt, ob diese Instanz einem angegebenen Objekt entspricht.

(Geerbt von Attribute)
MemberwiseClone()

Erstellt eine flache Kopie der aktuellen Object.

(Geerbt von Object)
ToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.

(Geerbt von Object)

Gilt für: