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 lze volat přímo z nativního kódu. Token funkce lze načíst do místní proměnné pomocí operátoru adresy 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í obsahovat parametry obecného typu nebo být obsaženy v obecné třídě.
Konstruktory
| Name | Description |
|---|---|
| UnmanagedCallersOnlyAttribute() |
Inicializuje novou UnmanagedCallersOnlyAttribute instanci. |
Pole
| Name | Description |
|---|---|
| CallConvs |
Optional. Pokud tento parametr vynecháte, modul runtime použije výchozí konvenci volání platformy. |
| EntryPoint |
Optional. Pokud tento parametr vynecháte, během kompilace se nevygeneruje žádný pojmenovaný export. |
Vlastnosti
| Name | Description |
|---|---|
| TypeId |
Při implementaci v odvozené třídě získá jedinečný identifikátor pro tento Attribute. (Zděděno od Attribute) |
Metody
| Name | Description |
|---|---|
| Equals(Object) |
Vrátí hodnotu, která určuje, zda je tato instance rovna zadanému objektu. (Zděděno od Attribute) |
| GetHashCode() |
Vrátí kód hash pro tuto instanci. (Zděděno od Attribute) |
| GetType() |
Získá Type aktuální instance. (Zděděno od Object) |
| IsDefaultAttribute() |
Při přepsání v odvozené třídě určuje, zda hodnota této instance je 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á určuje, zda se tato instance rovná zadanému objektu. (Zděděno od Attribute) |
| MemberwiseClone() |
Vytvoří mělkou kopii aktuálního Object. (Zděděno od Object) |
| ToString() |
Vrátí řetězec, který představuje aktuální objekt. (Zděděno od Object) |