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) |