MarshalMode Enum

Definition

Representerar de olika marshallinglägen som används av CustomMarshallerAttribute för att ange när en marshaller gäller.

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

Fält

Name Värde Description
Default 0

Alla lägen. En marshaller som anges med det här läget används om det inte finns någon specifik marshaller för ett visst användningsläge.

ManagedToUnmanagedIn 1

Eftervärde och in parametrar i hanterade till ohanterade scenarier, till exempel P/Invoke.

ManagedToUnmanagedRef 2

ref parametrar i hanterade till ohanterade scenarier, till exempel P/Invoke.

ManagedToUnmanagedOut 3

out parametrar och returnera värden i hanterade till ohanterade scenarier, till exempel P/Invoke. Marshaller konverterar från den ohanterade typen till den hanterade typen.

UnmanagedToManagedIn 4

Eftervärde och in parametrar i ohanterade till hanterade scenarier, till exempel Omvänd P/Anropa.

UnmanagedToManagedRef 5

ref parametrar i ohanterade till hanterade scenarier, till exempel Omvänd P/Anropa.

UnmanagedToManagedOut 6

out parametrar och returnera värden i ohanterade till hanterade scenarier, till exempel Omvänd P/Anropa. Marshaller konverterar från den hanterade typen till den ohanterade typen.

ElementIn 7

Element i matriser som skickas med in eller efter värde i interop-scenarier.

ElementRef 8

Element i matriser som skickas med ref eller skickas efter värde med både InAttribute och OutAttribute i interop-scenarier.

ElementOut 9

Element i matriser som skickas med out eller skickas efter värde med endast OutAttribute i interop-scenarier.

Kommentarer

Varje medlemsnamn följer mönstret {CallDirection}{DataFlow}:

  • Samtalsriktning (ManagedToUnmanaged eller UnmanagedToManaged) anger vilken sida som initierar anropet. ManagedToUnmanaged gäller för P/Invoke-anrop. UnmanagedToManaged gäller för omvända P/Invoke- eller COM-scenarier där inbyggd kod anropar till hanterad kod.
  • Dataflödet (In, Out, eller Ref) anger hur data flyttas i förhållande till anropet. In innebär dataflöden från anropare till samtalsmottagare. Out innebär dataflöden från anropare till anropare, som innehåller både out parametrar och returvärden. Ref innebär dataflöden i båda riktningarna.

Till exempel ManagedToUnmanagedOut gäller när hanterad kod anropar ohanterad kod (P/Invoke) och dataflöden tillbaka till anroparen – detta omfattar out parametrar och returvärden. Marshaller för det här läget konverterar från den ohanterade typen till den hanterade typen.

Gäller för