UnmanagedCallersOnlyAttribute Classe

Definizione

Qualsiasi metodo contrassegnato con UnmanagedCallersOnlyAttribute può essere chiamato direttamente dal codice nativo. Il token di funzione può essere caricato in una variabile locale usando l'operatore address-of in C# e passato come callback a un metodo nativo.

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
Ereditarietà
UnmanagedCallersOnlyAttribute
Attributi

Esempio

Nell'esempio seguente viene illustrato il passaggio di un callback contrassegnato UnmanagedCallersOnlyAttribute a una funzione nativa.

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

Commenti

I metodi contrassegnati con questo attributo presentano le restrizioni seguenti:

  • Deve essere contrassegnato con static.
  • Non deve essere chiamato dal codice gestito.
  • Deve contenere solo argomenti copiabili da blit .
  • Non deve avere parametri di tipo generico o essere contenuti all'interno di una classe generica.

Costruttori

UnmanagedCallersOnlyAttribute()

Inizializza una nuova istanza di UnmanagedCallersOnlyAttribute.

Campi

CallConvs

facoltativo. Se omesso, il runtime userà la convenzione di chiamata della piattaforma predefinita.

EntryPoint

facoltativo. Se omesso, durante la compilazione non viene creata alcuna esportazione denominata.

Proprietà

TypeId

Quando è implementata in una classe derivata, ottiene un identificatore univoco della classe Attribute.

(Ereditato da Attribute)

Metodi

Equals(Object)

Restituisce un valore che indica se questa istanza è uguale a un oggetto specificato.

(Ereditato da Attribute)
GetHashCode()

Restituisce il codice hash per l'istanza.

(Ereditato da Attribute)
GetType()

Ottiene l'oggetto Type dell'istanza corrente.

(Ereditato da Object)
IsDefaultAttribute()

In caso di override in una classe derivata, indica se il valore di questa istanza è il valore predefinito per la classe derivata.

(Ereditato da Attribute)
Match(Object)

Quando è sottoposto a override in una classe derivata, restituisce un valore che indica se questa istanza equivale a un oggetto specificato.

(Ereditato da Attribute)
MemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.

(Ereditato da Object)
ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.

(Ereditato da Object)

Si applica a