MarshalMode Enum
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
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
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 |
| ManagedToUnmanagedRef | 2 |
|
| ManagedToUnmanagedOut | 3 |
|
| UnmanagedToManagedIn | 4 | Menurut nilai dan |
| UnmanagedToManagedRef | 5 |
|
| UnmanagedToManagedOut | 6 |
|
| ElementIn | 7 | Elemen array yang diteruskan dengan |
| ElementRef | 8 | Elemen array yang diteruskan dengan |
| ElementOut | 9 | Elemen array yang diteruskan dengan |
Keterangan
Setiap nama anggota mengikuti pola {CallDirection}{DataFlow}:
-
Arah panggilan (
ManagedToUnmanagedatauUnmanagedToManaged) menunjukkan sisi mana yang memulai panggilan.ManagedToUnmanagedberlaku untuk panggilan P/Invoke.UnmanagedToManagedberlaku untuk skenario Reverse P/Invoke atau COM di mana kode asli memanggil ke dalam kode terkelola. -
Aliran data (
In,Out, atauRef) menunjukkan bagaimana data bergerak relatif terhadap panggilan.Inberarti aliran data dari penelepon ke penerima panggilan.Outberarti aliran data dari callee ke pemanggil, yang mencakupoutparameter dan nilai pengembalian.Refberarti 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.