MarshalMode Enumeração
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Representa os diferentes modos de marshalling usados para CustomMarshallerAttribute indicar quando um marshaller se aplica.
public enum class MarshalMode
public enum MarshalMode
type MarshalMode =
Public Enum MarshalMode
- Herança
Campos
| Nome | Valor | Description |
|---|---|---|
| Default | 0 | Todos os modos. Um marshaller especificado com esse modo será usado se não houver um marshaller específico para um determinado modo de uso. |
| ManagedToUnmanagedIn | 1 | Por valor e |
| ManagedToUnmanagedRef | 2 |
|
| ManagedToUnmanagedOut | 3 |
|
| UnmanagedToManagedIn | 4 | Por valor e |
| UnmanagedToManagedRef | 5 |
|
| UnmanagedToManagedOut | 6 |
|
| ElementIn | 7 | Elementos de matrizes passadas com |
| ElementRef | 8 | Elementos de matrizes passados com |
| ElementOut | 9 | Elementos de matrizes passados com |
Comentários
Cada nome de membro segue o padrão {CallDirection}{DataFlow}:
-
A direção da chamada (
ManagedToUnmanagedouUnmanagedToManaged) indica qual lado inicia a chamada.ManagedToUnmanagedaplica-se a chamadas P/Invoke.UnmanagedToManagedaplica-se a cenários de P/Invoke reverso ou COM em que o código nativo chama o código gerenciado. -
O fluxo de dados (
InouRefOut) indica como os dados se movem em relação à chamada.Insignifica fluxos de dados de chamador para destinatário.Outsignifica fluxos de dados do destinatário do chamador para o chamador, o que inclui parâmetrosoute valores retornados.Refsignifica fluxos de dados em ambas as direções.
Por exemplo, ManagedToUnmanagedOut aplica-se quando o código gerenciado chama código não gerenciado (P/Invoke) e os dados fluem de volta para o chamador , isso abrange out parâmetros e valores retornados. O marshaller para esse modo converte do tipo não gerenciado para o tipo gerenciado.