Udostępnij za pośrednictwem


MarshalMode Wyliczenie

Definicja

Reprezentuje różne tryby marshalingu używane przez, CustomMarshallerAttribute aby wskazać, kiedy ma zastosowanie marshaller.

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

Pola

Nazwa Wartość Opis
Default 0

Wszystkie tryby. Marshaller określony w tym trybie będzie używany, jeśli nie ma określonego marshallera dla danego trybu użycia.

ManagedToUnmanagedIn 1

Według wartości i in parametrów w scenariuszach zarządzanych do niezarządzanych, takich jak P/Invoke.

ManagedToUnmanagedRef 2

ref parametry w scenariuszach zarządzanych do niezarządzanych, takich jak P/Invoke.

ManagedToUnmanagedOut 3

out parametry i zwracane wartości w scenariuszach zarządzanych do niezarządzanych, takich jak P/Invoke. Marshaller konwertuje typ niezarządzany na typ zarządzany.

UnmanagedToManagedIn 4

Według wartości i in parametrów w scenariuszach niezarządzanych do zarządzania, takich jak reverse P/Invoke.

UnmanagedToManagedRef 5

ref parametry w scenariuszach niezarządzanych do zarządzania, takich jak reverse P/Invoke.

UnmanagedToManagedOut 6

out parametry i zwracane wartości w scenariuszach niezarządzanych do zarządzanych, takich jak Reverse P/Invoke. Marshaller konwertuje typ zarządzany na typ niezarządzany.

ElementIn 7

Elementy tablic przekazanych za pomocą in scenariuszy międzyoperacyjności lub by-value.

ElementRef 8

Elementy tablic przekazanych ref z lub przekazane przez wartość zarówno w scenariuszach międzyoperacyjności, jak InAttribute i OutAttribute w scenariuszach międzyoperacyjności.

ElementOut 9

Elementy tablic przekazanych out lub przekazane przez wartość tylko OutAttribute w scenariuszach międzyoperacyjności.

Uwagi

Każda nazwa elementu członkowskiego jest zgodna ze wzorcem {CallDirection}{DataFlow}:

  • Kierunek wywołania (ManagedToUnmanaged lub UnmanagedToManaged) wskazuje, która strona inicjuje wywołanie. ManagedToUnmanaged dotyczy wywołań P/Invoke. UnmanagedToManaged dotyczy scenariuszy reverse P/Invoke lub COM, w których kod natywny wywołuje kod zarządzany.
  • Przepływ danych (In, Out, lub Ref) wskazuje sposób, w jaki dane są przesuwane względem wywołania. In oznacza przepływ danych z obiektu wywołującego do wywoływania. Out oznacza przepływ danych z wywoływania do obiektu wywołującego, który zawiera zarówno parametry, jak out i wartości zwracane. Ref oznacza przepływy danych w obu kierunkach.

Dotyczy to na przykład sytuacji, ManagedToUnmanagedOut gdy kod zarządzany wywołuje niezarządzany kod (P/Invoke) i dane przepływa z powrotem do obiektu wywołującego — obejmuje out to parametry i zwracane wartości. Marshaller dla tego trybu konwertuje typ niezarządzany na typ zarządzany.

Dotyczy