UnmanagedCallersOnlyAttribute Klasa

Definicja

Każda metoda oznaczona za pomocą UnmanagedCallersOnlyAttribute polecenia może być wywoływana bezpośrednio z kodu natywnego. Token funkcji można załadować do zmiennej lokalnej przy użyciu operatora address-of w języku C# i przekazać go jako wywołanie zwrotne do metody natywnej.

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
Dziedziczenie
UnmanagedCallersOnlyAttribute
Atrybuty

Przykłady

W poniższym przykładzie pokazano przekazywanie wywołania zwrotnego oznaczonego UnmanagedCallersOnlyAttribute do funkcji natywnej.

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

Uwagi

Metody oznaczone tym atrybutem mają następujące ograniczenia:

  • Musi być oznaczony jako static.
  • Nie może być wywoływany z kodu zarządzanego.
  • Musi zawierać tylko argumenty blittable .
  • Nie może mieć parametrów typu ogólnego lub być zawarty w klasie ogólnej.

Konstruktory

UnmanagedCallersOnlyAttribute()

Inicjuje nowe UnmanagedCallersOnlyAttribute wystąpienie.

Pola

CallConvs

Opcjonalny. W przypadku pominięcia środowisko uruchomieniowe będzie używać domyślnej konwencji wywoływania platformy.

EntryPoint

Opcjonalny. Jeśli pominięto, podczas kompilacji nie jest emitowany żaden nazwany eksport.

Właściwości

TypeId

Po zaimplementowaniu w klasie pochodnej pobiera unikatowy identyfikator dla tego Attributeelementu .

(Odziedziczone po Attribute)

Metody

Equals(Object)

Zwraca wartość wskazującą, czy to wystąpienie jest równe podanemu obiektowi.

(Odziedziczone po Attribute)
GetHashCode()

Zwraca wartość skrótu dla tego wystąpienia.

(Odziedziczone po Attribute)
GetType()

Type Pobiera wartość bieżącego wystąpienia.

(Odziedziczone po Object)
IsDefaultAttribute()

Podczas zastępowania w klasie pochodnej wskazuje, czy wartość tego wystąpienia jest wartością domyślną dla klasy pochodnej.

(Odziedziczone po Attribute)
Match(Object)

Po przesłonięciu w klasie pochodnej zwraca wartość wskazującą, czy to wystąpienie jest równe określonemu obiektowi.

(Odziedziczone po Attribute)
MemberwiseClone()

Tworzy płytkią kopię bieżącego Objectelementu .

(Odziedziczone po Object)
ToString()

Zwraca ciąg reprezentujący bieżący obiekt.

(Odziedziczone po Object)

Dotyczy