UnmanagedCallersOnlyAttribute Classe
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
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
- 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) |