MarshalMode Výčet
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Představuje různé režimy zařazování používané CustomMarshallerAttribute k označení, kdy se použije marshaller.
public enum class MarshalMode
public enum MarshalMode
type MarshalMode =
Public Enum MarshalMode
- Dědičnost
Pole
| Name | Hodnota | Description |
|---|---|---|
| Default | 0 | Všechny režimy. Marshaller zadaný v tomto režimu se použije, pokud pro daný režim použití neexistuje žádný konkrétní marshaller. |
| ManagedToUnmanagedIn | 1 | Podle hodnot a |
| ManagedToUnmanagedRef | 2 |
|
| ManagedToUnmanagedOut | 3 |
|
| UnmanagedToManagedIn | 4 | Podle hodnot a |
| UnmanagedToManagedRef | 5 |
|
| UnmanagedToManagedOut | 6 |
|
| ElementIn | 7 | Prvky polí předaných s |
| ElementRef | 8 | Prvky polí předaných |
| ElementOut | 9 | Prvky polí předaných |
Poznámky
Každý název člena se řídí vzorem {CallDirection}{DataFlow}:
-
Směr volání (
ManagedToUnmanagedneboUnmanagedToManaged) označuje, která strana zahájí hovor.ManagedToUnmanagedplatí pro volání volání nespravovaného volání.UnmanagedToManagedplatí pro scénáře zpětného volání nespravovaného kódu nebo modelu COM, kde nativní volání kódu do spravovaného kódu. -
Tok dat (
In, neboOut) označuje,Refjak se data pohybují vzhledem k volání.Inznamená toky dat z volajícího na volaný.Outznamená toky dat z volané do volajícího, která zahrnuje parametryouti návratové hodnoty.Refznamená toky dat v obou směrech.
Platí například v případě, ManagedToUnmanagedOut že spravovaný kód volá nespravovaný kód (P/Invoke) a toky dat zpět volajícímu – to zahrnuje out parametry a návratové hodnoty. Marshaller pro tento režim převede z nespravovaného typu na spravovaný typ.