MarshalMode Enumeração
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Representa os diferentes modos de marshalling usados por CustomMarshallerAttribute para indicar quando um marshaller se aplica.
public enum class MarshalMode
public enum MarshalMode
type MarshalMode =
Public Enum MarshalMode
- Herança
Campos
| Name | Valor | Description |
|---|---|---|
| Default | 0 | Todos os modos. Um marshaller especificado com este modo será usado se não houver marshaller específico para um determinado modo de utilização. |
| ManagedToUnmanagedIn | 1 | Por valor e |
| ManagedToUnmanagedRef | 2 |
|
| ManagedToUnmanagedOut | 3 |
|
| UnmanagedToManagedIn | 4 | Por valor e |
| UnmanagedToManagedRef | 5 |
|
| UnmanagedToManagedOut | 6 |
|
| ElementIn | 7 | Elementos de arrays passados com |
| ElementRef | 8 | Elementos dos arrays passavam com |
| ElementOut | 9 | Elementos dos arrays passavam com |
Observações
Cada nome de membro segue o padrão {CallDirection}{DataFlow}:
-
A direção da chamada (
ManagedToUnmanagedouUnmanagedToManaged) indica que lado inicia a chamada.ManagedToUnmanagedAplica-se a chamadas P/Invoke.UnmanagedToManagedaplica-se a cenários Reverse P/Invoke ou COM onde código nativo chama para código gerido. -
O fluxo de dados (
In,Out, ouRef) indica como os dados se movem em relação à chamada.Insignifica que os dados fluem do chamador para o chamado.Outsignifica que os dados fluem do chamado para o chamador, incluindo tantooutparâmetros como valores de retorno.Refsignifica que os dados fluem em ambas as direções.
Por exemplo, ManagedToUnmanagedOut aplica-se quando o código gerido chama código não gerido (P/Invoke) e os dados regressam ao chamador — isto cobre out parâmetros e valores de retorno. O marshaller deste modo converte do tipo não gerido para o tipo gerido.