MarshalMode Enumeration
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Stellt die verschiedenen Marshallingmodi dar, die verwendet werden CustomMarshallerAttribute , um anzugeben, wann ein Marshaller angewendet wird.
public enum class MarshalMode
public enum MarshalMode
type MarshalMode =
Public Enum MarshalMode
- Vererbung
Felder
| Name | Wert | Beschreibung |
|---|---|---|
| Default | 0 | Alle Modi. Ein marshaller, der mit diesem Modus angegeben ist, wird verwendet, wenn kein bestimmter Marshaller für einen bestimmten Verwendungsmodus vorhanden ist. |
| ManagedToUnmanagedIn | 1 | Nach-Wert und |
| ManagedToUnmanagedRef | 2 |
|
| ManagedToUnmanagedOut | 3 |
|
| UnmanagedToManagedIn | 4 | Nach-Wert und |
| UnmanagedToManagedRef | 5 |
|
| UnmanagedToManagedOut | 6 |
|
| ElementIn | 7 | Elemente von Arrays, die in Interopszenarien mit |
| ElementRef | 8 | Elemente von Arrays, die mit |
| ElementOut | 9 | Elemente von Arrays, die nur in Interoperabilitätsszenarien mit |
Hinweise
Jeder Membername folgt dem Muster {CallDirection}{DataFlow}:
-
Anrufrichtung (
ManagedToUnmanagedoderUnmanagedToManaged) gibt an, welche Seite den Anruf initiiert.ManagedToUnmanagedgilt für P/Invoke-Aufrufe.UnmanagedToManagedgilt für Reverse P/Invoke- oder COM-Szenarien, in denen systemeigener Codeaufrufe in verwalteten Code erfolgt. -
Der Datenfluss (
In, oderRef) gibt an,Outwie Daten relativ zum Aufruf verschoben werden.Inbedeutet, dass Datenflüsse vom Anrufer zum Angerufenen fließen.Outbedeutet, dass Datenflüsse von Angerufenen zu Aufrufer fließen, die sowohl Parameter als auchoutRückgabewerte enthalten.Refbedeutet, dass Daten in beide Richtungen fließen.
Gilt beispielsweise, ManagedToUnmanagedOut wenn verwalteter Code nicht verwalteten Code (P/Invoke) aufruft und Daten zurück an den Aufrufer fließen – dies deckt out Parameter und Rückgabewerte ab. Der Marshaller für diesen Modus wird vom nicht verwalteten Typ in den verwalteten Typ konvertiert.