Sdílet prostřednictvím


MarshalMode Výčet

Definice

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
MarshalMode

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 in parametrů ve scénářích spravovaných na nespravované, jako je volání nespravovaného kódu

ManagedToUnmanagedRef 2

ref parametry ve scénářích spravovaných na nespravované, jako je volání nespravovaného kódu.

ManagedToUnmanagedOut 3

out parametry a návratové hodnoty v nespravovaných scénářích spravovaných do nespravovaných, jako je volání nespravovaného kódu. Marshaller převede z nespravovaného typu na spravovaný typ.

UnmanagedToManagedIn 4

Podle hodnot a in parametrů v nespravovaných scénářích se správou, jako je reverse P/Invoke.

UnmanagedToManagedRef 5

ref parametry v nespravovaných scénářích se správou, jako je Reverse P/Invoke.

UnmanagedToManagedOut 6

out parametry a návratové hodnoty v nespravovaných scénářích se správou, jako je reverse P/Invoke. Marshaller se převede ze spravovaného typu na nespravovaný typ.

ElementIn 7

Prvky polí předaných s in hodnotou nebo podle hodnoty ve scénářích spolupráce

ElementRef 8

Prvky polí předaných ref nebo předávaných podle hodnoty s oběma InAttribute a OutAttribute v scénářích spolupráce.

ElementOut 9

Prvky polí předaných out nebo předávaných podle hodnoty pouze OutAttribute ve scénářích spolupráce.

Poznámky

Každý název člena se řídí vzorem {CallDirection}{DataFlow}:

  • Směr volání (ManagedToUnmanaged nebo UnmanagedToManaged) označuje, která strana zahájí hovor. ManagedToUnmanaged platí pro volání volání nespravovaného volání. UnmanagedToManaged platí 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, nebo Out) označuje, Refjak se data pohybují vzhledem k volání. In znamená toky dat z volajícího na volaný. Out znamená toky dat z volané do volajícího, která zahrnuje parametry out i návratové hodnoty. Ref znamená 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.

Platí pro