MarshalMode 列挙型
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
マーシャラーが適用されるタイミングを示すために CustomMarshallerAttribute によって使用されるさまざまなマーシャリング モードを表します。
public enum class MarshalMode
public enum MarshalMode
type MarshalMode =
Public Enum MarshalMode
- 継承
フィールド
| 名前 | 値 | 説明 |
|---|---|---|
| Default | 0 | すべてのモード。 このモードで指定されたマーシャラーは、特定の使用モードに特定のマーシャラーがない場合に使用されます。 |
| ManagedToUnmanagedIn | 1 | P/Invoke などのマネージドからアンマネージドのシナリオでの値別パラメーターと |
| ManagedToUnmanagedRef | 2 |
|
| ManagedToUnmanagedOut | 3 |
|
| UnmanagedToManagedIn | 4 | 逆引き P/Invoke など、アンマネージドからマネージドへのシナリオでの値別パラメーターと |
| UnmanagedToManagedRef | 5 |
|
| UnmanagedToManagedOut | 6 |
|
| ElementIn | 7 | 相互運用シナリオで |
| ElementRef | 8 | 相互運用シナリオで、 |
| ElementOut | 9 |
|
注釈
各メンバー名は、パターン {CallDirection}{DataFlow}に従います。
-
通話の方向 (
ManagedToUnmanagedまたはUnmanagedToManaged) は、通話を開始する側を示します。ManagedToUnmanagedは P/Invoke 呼び出しに適用されます。UnmanagedToManagedは、ネイティブ コードがマネージド コードを呼び出す逆引き P/Invoke または COM シナリオに適用されます。 -
データ フロー (
In、Out、またはRef) は、呼び出しに対するデータの移動方法を示します。Inは、呼び出し元から呼び出し先へのデータ フローを意味します。Outは、呼び出し先から呼び出し元へのデータ フローを意味します。これには、outパラメーターと戻り値の両方が含まれます。Refは、双方向のデータ フローを意味します。
たとえば、マネージド コードがアンマネージ コード (P/Invoke) を呼び出し、データが呼び出し元に戻るときに適用される ManagedToUnmanagedOut は、パラメーターと戻り値 out 説明します。 このモードのマーシャラーは、アンマネージ型からマネージド型に変換します。