Partager via


UnmanagedCallersOnlyAttribute Classe

Définition

Toute méthode marquée avec UnmanagedCallersOnlyAttribute peut être directement appelée à partir du code natif. Le jeton de fonction peut être chargé dans une variable locale à l’aide de l’opérateur C# address-of et passé comme rappel à une méthode native.

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
Héritage
UnmanagedCallersOnlyAttribute
Attributs

Exemples

L’exemple suivant illustre le passage d’un rappel marqué UnmanagedCallersOnlyAttribute à une fonction native.

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

Remarques

Les méthodes marquées avec cet attribut présentent les restrictions suivantes :

  • Doit être marqué static.
  • Ne doit pas être appelé à partir du code managé.
  • Ne doit avoir que des arguments blittables .
  • Ne doit pas avoir de paramètres de type générique ou être contenu dans une classe générique.

Constructeurs

UnmanagedCallersOnlyAttribute()

Initialise une nouvelle instance de UnmanagedCallersOnlyAttribute.

Champs

CallConvs

Optionnel. En cas d’omission, le runtime utilise la convention d’appel de plateforme par défaut.

EntryPoint

Optionnel. En cas d’omission, aucune exportation nommée n’est émise pendant la compilation.

Propriétés

TypeId

Lors de l'implémentation dans une classe dérivée, obtient un identificateur unique pour l'objet Attribute.

(Hérité de Attribute)

Méthodes

Equals(Object)

Retourne une valeur qui indique si cette instance est égale à un objet spécifié.

(Hérité de Attribute)
GetHashCode()

Retourne le code de hachage de cette instance.

(Hérité de Attribute)
GetType()

Obtient le Type de l'instance actuelle.

(Hérité de Object)
IsDefaultAttribute()

En cas de substitution dans une classe dérivée, indique si la valeur de cette instance est la valeur par défaut pour la classe dérivée.

(Hérité de Attribute)
Match(Object)

En cas de substitution dans une classe dérivée, retourne une valeur indiquant si cette instance équivaut à un objet spécifié.

(Hérité de Attribute)
MemberwiseClone()

Crée une copie superficielle du Object actuel.

(Hérité de Object)
ToString()

Retourne une chaîne qui représente l'objet actuel.

(Hérité de Object)

S’applique à