Bagikan melalui


MarshalMode Enum

Definisi

Mewakili berbagai mode marshalling yang digunakan oleh CustomMarshallerAttribute untuk menunjukkan kapan marshaller berlaku.

public enum class MarshalMode
public enum MarshalMode
type MarshalMode = 
Public Enum MarshalMode
Warisan
MarshalMode

Bidang

Nama Nilai Deskripsi
Default 0

Semua mode. Marshaller yang ditentukan dengan mode ini akan digunakan jika tidak ada marshaller tertentu untuk mode penggunaan tertentu.

ManagedToUnmanagedIn 1

Menurut nilai dan in parameter dalam skenario terkelola ke tidak terkelola, seperti P/Invoke.

ManagedToUnmanagedRef 2

ref parameter dalam skenario terkelola ke tidak terkelola, seperti P/Invoke.

ManagedToUnmanagedOut 3

out parameter dan mengembalikan nilai dalam skenario terkelola ke tidak terkelola, seperti P/Invoke. Marshaller mengonversi dari jenis yang tidak dikelola ke jenis terkelola.

UnmanagedToManagedIn 4

Menurut nilai dan in parameter dalam skenario yang tidak dikelola ke dikelola, seperti Reverse P/Invoke.

UnmanagedToManagedRef 5

ref parameter dalam skenario yang tidak dikelola ke terkelola, seperti Reverse P/Invoke.

UnmanagedToManagedOut 6

out parameter dan mengembalikan nilai dalam skenario yang tidak dikelola ke dikelola, seperti Reverse P/Invoke. Marshaller mengonversi dari jenis terkelola ke jenis yang tidak dikelola.

ElementIn 7

Elemen array yang diteruskan dengan in atau berdasarkan nilai dalam skenario interop.

ElementRef 8

Elemen array yang diteruskan dengan ref atau diteruskan berdasarkan nilai dengan skenario interop dan InAttribute keduanyaOutAttribute.

ElementOut 9

Elemen array yang diteruskan dengan out atau diteruskan berdasarkan nilai hanya OutAttribute dalam skenario interop.

Keterangan

Setiap nama anggota mengikuti pola {CallDirection}{DataFlow}:

  • Arah panggilan (ManagedToUnmanaged atau UnmanagedToManaged) menunjukkan sisi mana yang memulai panggilan. ManagedToUnmanaged berlaku untuk panggilan P/Invoke. UnmanagedToManaged berlaku untuk skenario Reverse P/Invoke atau COM di mana kode asli memanggil ke dalam kode terkelola.
  • Aliran data (In, Out, atau Ref) menunjukkan bagaimana data bergerak relatif terhadap panggilan. In berarti aliran data dari penelepon ke penerima panggilan. Out berarti aliran data dari callee ke pemanggil, yang mencakup out parameter dan nilai pengembalian. Ref berarti aliran data di kedua arah.

Misalnya, ManagedToUnmanagedOut berlaku saat kode terkelola memanggil kode yang tidak dikelola (P/Panggil) dan aliran data kembali ke pemanggil — ini mencakup out parameter dan mengembalikan nilai. Marshaller untuk mode ini mengonversi dari jenis yang tidak dikelola ke jenis terkelola.

Berlaku untuk