MarshalMode Énumération
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Représente les différents modes de marshaling utilisés pour CustomMarshallerAttribute indiquer quand un marshaller s’applique.
public enum class MarshalMode
public enum MarshalMode
type MarshalMode =
Public Enum MarshalMode
- Héritage
Champs
| Nom | Valeur | Description |
|---|---|---|
| Default | 0 | Tous les modes. Un marshaller spécifié avec ce mode sera utilisé s’il n’existe aucun marshaller spécifique pour un mode d’utilisation donné. |
| ManagedToUnmanagedIn | 1 | Par valeur et |
| ManagedToUnmanagedRef | 2 |
|
| ManagedToUnmanagedOut | 3 |
|
| UnmanagedToManagedIn | 4 | Par valeur et |
| UnmanagedToManagedRef | 5 |
|
| UnmanagedToManagedOut | 6 |
|
| ElementIn | 7 | Éléments des tableaux passés avec |
| ElementRef | 8 | Éléments des tableaux passés avec |
| ElementOut | 9 | Éléments des tableaux passés avec |
Remarques
Chaque nom de membre suit le modèle {CallDirection}{DataFlow}:
-
Le sens de l’appel (
ManagedToUnmanagedouUnmanagedToManaged) indique quel côté lance l’appel.ManagedToUnmanageds’applique aux appels P/Invoke.UnmanagedToManageds’applique aux scénarios P/Invoke inverses ou COM dans lesquels le code natif appelle du code managé. -
Le flux de données (
In,OutouRef) indique comment les données se déplacent par rapport à l’appel.Insignifie que les flux de données entre l’appelant et l’appelé.Outsignifie que les flux de données de l’appelé à l’appelant, qui incluent à la foisoutdes paramètres et des valeurs de retour.Refsignifie que les flux de données sont dans les deux sens.
Par exemple, ManagedToUnmanagedOut s’applique lorsque le code managé appelle du code non managé (P/Invoke) et que les données revient à l’appelant, ce qui couvre les out paramètres et les valeurs de retour. Le marshaller pour ce mode se convertit du type non managé au type managé.