共用方式為


MarshalMode 列舉

定義

代表用於 CustomMarshallerAttribute 指示何時啟動編組器的不同編組模式。

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

欄位

名稱 Description
Default 0

所有模式。 如果沒有特定使用模式的指令器,則會使用該模式指定的 marshaller。

ManagedToUnmanagedIn 1

在管理到非管理的情境中,例如P/Invoke,使用參數 in 與參數。

ManagedToUnmanagedRef 2

ref 參數用於管理到非管理的情境,例如 P/Invoke。

ManagedToUnmanagedOut 3

out 參數與回傳值,適用於管理至非管理的情境,如 P/Invoke。 調頭員會將未管理型態轉換為受管型態。

UnmanagedToManagedIn 4

在非管理到管理的情境中,例如反向 P/Invoke,則是按價值和 in 參數設定。

UnmanagedToManagedRef 5

ref 參數用於非管理到管理的情境,例如 Reverse P/Invoke。

UnmanagedToManagedOut 6

out 參數與回傳值,適用於非管理轉管理情境,如 Reverse P/Invoke。 調校員會將管理型態轉換成非管理型態。

ElementIn 7

陣列元素在互操作情境中以 in 值傳遞。

ElementRef 8

陣列元素在互操作情境中以 和 傳遞ref或以 by. OutAttributeInAttribute 值傳遞。

ElementOut 9

陣列元素僅OutAttribute在互操作情境下以值傳遞out或以 by。

備註

每位成員名稱的模式 {CallDirection}{DataFlow}如下:

  • 呼叫方向ManagedToUnmanagedUnmanagedToManaged)表示呼叫的一方發起。 ManagedToUnmanaged 適用於 P/Invoke 通話。 UnmanagedToManaged 適用於反向 P/Invoke 或 COM 情境,當原生程式碼呼叫受管理程式碼時。
  • 資料流InOutRef)表示資料相對於通話的移動方式。 In 表示資料會從呼叫者流向被叫者。 Out 表示資料會從被叫方流向呼叫方,包含參數 out 與回傳值。 Ref 表示資料是雙向流動。

例如,當受管理程式碼呼叫非受管理程式碼(P/Invoke)且資料回流至呼叫者時,這 ManagedToUnmanagedOut 涵蓋 out 參數與回傳值。 此模式的調組器會將非管理型態轉換為管理型態。

適用於