UnmanagedCallersOnlyAttribute クラス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
UnmanagedCallersOnlyAttribute のマークが付いているメソッドは、ネイティブ コードから直接呼び出すことができます。 関数トークンは C# で address-of 演算子を使用してローカル変数に読み込み、コールバックとしてネイティブ メソッドに渡すことができます。
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
- 継承
- 属性
例
次の例では、ネイティブ関数にマークされた UnmanagedCallersOnlyAttribute コールバックを渡す方法を示します。
[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);
}
注釈
この属性でマークされたメソッドには、次の制限があります。
- をマーク
static
する必要があります。 - マネージド コードから呼び出さないでください。
- blittable 引数のみを指定する必要があります。
- ジェネリック型パラメーターを含めたり、ジェネリック クラスに含めたりすることはできません。
コンストラクター
UnmanagedCallersOnlyAttribute() |
新しい UnmanagedCallersOnlyAttribute インスタンスを初期化します。 |
フィールド
CallConvs |
省略可能。 省略すると、ランタイムは 既定のプラットフォーム呼び出し規則を使用します。 |
EntryPoint |
省略可能。 省略した場合、名前のないエクスポートがコンパイル中に生成されます。 |
プロパティ
TypeId |
派生クラスで実装されると、この Attribute の一意の識別子を取得します。 (継承元 Attribute) |
メソッド
Equals(Object) |
このインスタンスが、指定されたオブジェクトと等価であるかどうかを示す値を返します。 (継承元 Attribute) |
GetHashCode() |
このインスタンスのハッシュ コードを返します。 (継承元 Attribute) |
GetType() |
現在のインスタンスの Type を取得します。 (継承元 Object) |
IsDefaultAttribute() |
派生クラスでオーバーライドされるとき、このインスタンスの値が派生クラスの既定値であるかどうかを示します。 (継承元 Attribute) |
Match(Object) |
派生クラス内でオーバーライドされたときに、指定したオブジェクトとこのインスタンスが等しいかどうかを示す値を返します。 (継承元 Attribute) |
MemberwiseClone() |
現在の Object の簡易コピーを作成します。 (継承元 Object) |
ToString() |
現在のオブジェクトを表す文字列を返します。 (継承元 Object) |
適用対象
.NET