UnmanagedCallersOnlyAttribute Třída
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Libovolnou metodu označenou UnmanagedCallersOnlyAttribute pomocí lze volat přímo z nativního kódu. Token funkce je možné načíst do místní proměnné pomocí operátoru address-of v jazyce C# a předat ho jako zpětné volání nativní metodě.
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
- Dědičnost
- Atributy
Příklady
Následující příklad ukazuje předání zpětného volání označeného UnmanagedCallersOnlyAttribute nativní funkci.
[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);
}
Poznámky
Metody označené tímto atributem mají následující omezení:
- Musí být označený
static
. - Nesmí být volána ze spravovaného kódu.
- Musí obsahovat pouze blitelné argumenty.
- Nesmí mít parametry obecného typu ani být obsaženy v obecné třídě.
Konstruktory
UnmanagedCallersOnlyAttribute() |
Inicializuje novou UnmanagedCallersOnlyAttribute instanci. |
Pole
CallConvs |
Nepovinný parametr. Pokud ho vynecháte, modul runtime použije výchozí konvenci volání platformy. |
EntryPoint |
Nepovinný parametr. Pokud tento parametr vynecháte, během kompilace se nevygeneruje žádný pojmenovaný export. |
Vlastnosti
TypeId |
Při implementaci v odvozené třídě získá jedinečný identifikátor pro tuto Attributetřídu . (Zděděno od Attribute) |
Metody
Equals(Object) |
Vrací hodnotu, která určuje, zda je tato instance rovna zadanému objektu. (Zděděno od Attribute) |
GetHashCode() |
Vrátí hodnotu hash pro tuto instanci. (Zděděno od Attribute) |
GetType() |
Type Získá z aktuální instance. (Zděděno od Object) |
IsDefaultAttribute() |
Při přepsání v odvozené třídě označuje, zda je hodnota této instance výchozí hodnotou pro odvozenou třídu. (Zděděno od Attribute) |
Match(Object) |
Při přepsání v odvozené třídě vrátí hodnotu, která označuje, zda se tato instance rovná zadanému objektu. (Zděděno od Attribute) |
MemberwiseClone() |
Vytvoří mělkou kopii aktuálního Objectsouboru . (Zděděno od Object) |
ToString() |
Vrátí řetězec, který představuje aktuální objekt. (Zděděno od Object) |