次の方法で共有


MarshalMode 列挙型

定義

マーシャラーが適用されるタイミングを示すために CustomMarshallerAttribute によって使用されるさまざまなマーシャリング モードを表します。

public enum class MarshalMode
public enum MarshalMode
type MarshalMode = 
Public Enum MarshalMode
継承
MarshalMode

フィールド

名前 説明
Default 0

すべてのモード。 このモードで指定されたマーシャラーは、特定の使用モードに特定のマーシャラーがない場合に使用されます。

ManagedToUnmanagedIn 1

P/Invoke などのマネージドからアンマネージドのシナリオでの値別パラメーターと in パラメーター。

ManagedToUnmanagedRef 2

ref P/Invoke など、マネージドからアンマネージドのシナリオのパラメーター。

ManagedToUnmanagedOut 3

out P/Invoke など、マネージドからアンマネージドのシナリオでのパラメーターと戻り値。 マーシャラーは、アンマネージ型からマネージド型に変換します。

UnmanagedToManagedIn 4

逆引き P/Invoke など、アンマネージドからマネージドへのシナリオでの値別パラメーターと in パラメーター。

UnmanagedToManagedRef 5

ref 逆引き P/Invoke など、アンマネージドからマネージドへのシナリオのパラメーター。

UnmanagedToManagedOut 6

out パラメーターと戻り値 (逆引き P/呼び出しなど) のアンマネージドからマネージドへのシナリオ。 マーシャラーは、マネージド型からアンマネージ型に変換します。

ElementIn 7

相互運用シナリオで in または値渡しで渡される配列の要素。

ElementRef 8

相互運用シナリオで、 ref で渡されるか、 InAttributeOutAttribute の両方で値渡しされる配列の要素。

ElementOut 9

outで渡される配列の要素、または相互運用シナリオでOutAttributeのみを使用して値渡しされる配列の要素。

注釈

各メンバー名は、パターン {CallDirection}{DataFlow}に従います。

  • 通話の方向 (ManagedToUnmanaged または UnmanagedToManaged) は、通話を開始する側を示します。 ManagedToUnmanaged は P/Invoke 呼び出しに適用されます。 UnmanagedToManaged は、ネイティブ コードがマネージド コードを呼び出す逆引き P/Invoke または COM シナリオに適用されます。
  • データ フロー (InOut、または Ref) は、呼び出しに対するデータの移動方法を示します。 In は、呼び出し元から呼び出し先へのデータ フローを意味します。 Out は、呼び出し先から呼び出し元へのデータ フローを意味します。これには、 out パラメーターと戻り値の両方が含まれます。 Ref は、双方向のデータ フローを意味します。

たとえば、マネージド コードがアンマネージ コード (P/Invoke) を呼び出し、データが呼び出し元に戻るときに適用される ManagedToUnmanagedOut は、パラメーターと戻り値 out 説明します。 このモードのマーシャラーは、アンマネージ型からマネージド型に変換します。

適用対象