MarshalMode Enumerazione
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Rappresenta le diverse modalità di marshalling utilizzate da CustomMarshallerAttribute per indicare quando si applica un marshaller.
public enum class MarshalMode
public enum MarshalMode
type MarshalMode =
Public Enum MarshalMode
- Ereditarietà
Campi
| Nome | Valore | Descrizione |
|---|---|---|
| Default | 0 | Tutte le modalità. Se non esiste alcun marshaller specifico per una determinata modalità di utilizzo, verrà usato un marshaller specificato con questa modalità di utilizzo. |
| ManagedToUnmanagedIn | 1 | Per valore e |
| ManagedToUnmanagedRef | 2 |
|
| ManagedToUnmanagedOut | 3 |
|
| UnmanagedToManagedIn | 4 | Per valore e |
| UnmanagedToManagedRef | 5 |
|
| UnmanagedToManagedOut | 6 |
|
| ElementIn | 7 | Elementi di matrici passate con |
| ElementRef | 8 | Elementi di matrici passati con |
| ElementOut | 9 | Elementi di matrici passati con |
Commenti
Ogni nome di membro segue il modello {CallDirection}{DataFlow}:
-
La direzione della chiamata (
ManagedToUnmanagedoUnmanagedToManaged) indica il lato che avvia la chiamata.ManagedToUnmanagedsi applica alle chiamate P/Invoke.UnmanagedToManagedsi applica agli scenari P/Invoke inversi o COM in cui il codice nativo chiama nel codice gestito. -
Il flusso di dati (
In,OutoRef) indica il modo in cui i dati vengono spostati rispetto alla chiamata.Insignifica che i dati passano dal chiamante al chiamato.Outindica i flussi di dati dal chiamato al chiamante, che include entrambiouti parametri e i valori restituiti.Refindica i flussi di dati in entrambe le direzioni.
Ad esempio, ManagedToUnmanagedOut si applica quando il codice gestito chiama codice non gestito (P/Invoke) e i dati tornano al chiamante, ovvero vengono illustrati out i parametri e i valori restituiti. Il marshaller per questa modalità esegue la conversione dal tipo non gestito al tipo gestito.