Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Para usar um empacotador personalizado, você deve aplicar o MarshalAsAttribute atributo ao parâmetro ou do campo sendo empacotado. O atributo identifica o empacotador personalizado que ativa o wrapper apropriado.
O empacotador personalizado implementa o Interface ICustomMarshaler interface para fornecer os wrappers apropriados para o time de execução, criando o empacotador personalizado na primeira vez que um argumento precisa ser empacotado.Ele chama o MarshalNativeToManaged and MarshalManagedToNative métodos o empacotador personalizado para ativar o wrapper correto para lidar com a telefonar.A tabela a seguir descreve cada método exposto pelo ICustomMarshaler interface.
Método de interface |
Descrição |
|---|---|
MarshalNativeToManaged |
Retorna um personalizado tempo de execução callable wrapper que é possível realizar realizar marshaling a interface não gerenciada passada sistema autônomo um argumento.O empacotador deve retornar uma instância do personalizado tempo de execução callable wrapper para esse tipo. |
MarshalManagedToNative |
Retorna um personalizados COM callable wrapper que é possível realizar realizar marshaling a interface gerenciada passada sistema autônomo um argumento.O empacotador deve retornar uma instância do personalizado COM callable wrapper para o tipo. |
CleanUpNativeData |
Oferece uma oportunidade para o empacotador personalizado executar qualquer limpeza necessária do wrapper retornado pelo MarshalManagedToNative método. |
CleanUpManagedData |
Oferece uma oportunidade para o empacotador personalizado executar qualquer limpeza necessária do wrapper retornado pelo MarshalNativeToManaged método. |
GetInstance |
Recupera uma instância do empacotador personalizado.Esse método estático pode criar uma nova instância do empacotador personalizado sempre ou ele pode usar o mesmo sempre se empacotador personalizado é sem monitoração de estado.O método é chamado pelo serviço de marshaling para criar o empacotador sempre que um parâmetro ou o campo é marcado com o UnmanagedType.CustomMarshaler. |
Consulte também
Conceitos
Definindo o tipo de marshaling
Usando um empacotador de substituir