Partilhar via


Aplicar atributos de interoperabilidade

The System.Runtime.InteropServices namespace fornece três categorias de atributos específicos de interoperabilidade: as aplicadas por você em time de design, as aplicadas por APIs e ferramentas de interoperabilidade COM durante o processo de conversão e as aplicadas tanto por você ou COM interop.

Se não estão familiarizados com a tarefa de aplicação de atributos para código gerenciado, consulte Estendendo metadados usando atributos.Como outros atributos personalizados, você pode aplicar atributos específicos de interoperabilidade para tipos, métodos, propriedades, parâmetros, campos e outros membros.

Atributos de time de design

Você pode ajustar o resultado do processo de conversão executado por interoperabilidade COM ferramentas e APIs usando atributos de time de design.A tabela a seguir descreve os atributos que você pode aplicar ao seu gerenciado código-fonte.Ferramentas de interoperabilidade COM, ocasionalmente, também podem aplicar os atributos descritos nesta tabela.

Atributo

Descrição

AutomationProxyAttribute

Especifica o tipo deve ser empacotado usando o empacotador de automação ou um proxy personalizado e stub.

ClassInterfaceAttribute

Controla o tipo de interface gerado para uma classe.

CoClassAttribute

Identifica o CLSID do original coclass importados de uma biblioteca de tipos.

Ferramentas de interoperabilidade de COM normalmente aplicam esse atributo.

ComImportAttribute

Indica que uma definição de interface ou coclass foi importada de uma biblioteca de tipos COM.O tempo de execução usa esse sinalizar para saber como ativar e realizar realizar marshaling o tipo.Esse atributo proíbe que o tipo sendo exportados para o biblioteca de tipos.

Ferramentas de interoperabilidade de COM normalmente aplicam esse atributo.

ComRegisterFunctionAttribute

Indica que um método deve ser chamado quando o assembly estiver registrado para uso do COM, para que o código escrito por usuário pode ser executado durante o processo de inscrição.

ComSourceInterfacesAttribute

Identifica as interfaces que são fontes de eventos da classe.

Ferramentas de interoperabilidade COM podem aplicar esse atributo.

ComUnregisterFunctionAttribute

Indica que um método deve ser chamado quando o assembly é cancelar o registro do COM, para que possa executar código escrito por usuário durante o processo.

ComVisibleAttribute

Processa tipos invisível para COM quando o valor do atributo é igual a False.Esse atributo pode ser aplicado para um tipo individual ou para um assembly inteiro para controlar a visibilidade COM.Por padrão, todos os tipos gerenciado e públicos estão visíveis, o atributo não é necessária para torná-las visíveis.

DispIdAttribute

Especifica o identificador de despacho COM (DISPID) de um método ou campo.Esse atributo contém DISPID para o método, campo ou propriedade, que ela descreve.

Ferramentas de interoperabilidade COM podem aplicar esse atributo.

FieldOffsetAttribute

Indica a posição física de cada campo em uma classe quando usado com o StructLayoutAttribute, and the LayoutKind é definida como explícita.

GuidAttribute

Especifica o identificador global exclusivo (GUID) de uma classe, interface ou uma biblioteca de tipo inteiro.A cadeia de caracteres passada para o atributo deve ser um formato de um argumento de construtor aceitável para o tipo de sistema.GUID.

Ferramentas de interoperabilidade COM podem aplicar esse atributo.

IDispatchImpAttribute

Indica qual IDispatch interface implementação o common linguagem tempo de execução usa ao expor interfaces duplos e dispinterfaces para COM.

InAttribute

Indica que os dados devem ser empacotados ao chamador.Pode ser usado para parâmetros de atributo.

InterfaceTypeAttribute

Controla como uma interface gerenciada é exposta a COM clientes (dual, derivada de IUnknown, ou apenas IDispatch).

Ferramentas de interoperabilidade COM podem aplicar esse atributo.

LCIDConversionAttribute

Indica que uma assinatura de método não-gerenciado espera um parâmetro LCID.

Ferramentas de interoperabilidade COM podem aplicar esse atributo.

MarshalAsAttribute

Indica como os dados em campos ou parâmetros devem ser empacotados entre código gerenciado e não gerenciado.O atributo sempre é opcional porque cada tipo de dados tem comportamento de marshaling padrão.

Ferramentas de interoperabilidade COM podem aplicar esse atributo.

OptionalAttribute

Indica que um parâmetro é opcional.

Ferramentas de interoperabilidade COM podem aplicar esse atributo.

OutAttribute

Indica que os dados em um campo ou o parâmetro devem ser empacotados de um objeto chamado volta a seu chamador.

PreserveSigAttribute

Suprime a transformação de assinatura HRESULT ou retval que normalmente ocorre durante as chamadas de interoperação.O atributo afeta marshaling, bem sistema autônomo exportar de biblioteca de tipo.

Ferramentas de interoperabilidade COM podem aplicar esse atributo.

ProgIdAttribute

Especifica o ProgID de uma classe do .NET estrutura.Pode ser usado para classes de atributo.

StructLayoutAttribute

Controla o layout físico dos campos de uma classe.

Ferramentas de interoperabilidade COM podem aplicar esse atributo.

Atributos de ferramenta de conversão

A tabela a seguir descreve os atributos que ferramentas de interoperabilidade COM se aplicam durante o processo de conversão.Você não aplicar esses atributos no time de design.

Atributo

Descrição

ComAliasNameAttribute

Indica o alias de COM para um tipo de parâmetro ou campo.Pode ser usado para parâmetros de atributo, campos, ou valores de retorno.

ComConversionLossAttribute

Indica que informações sobre uma classe ou interface foi perdidas quando ele foi importado de uma biblioteca de tipos a um assembly.

ComEventInterfaceAttribute

Identifica a interface de fonte e a classe que implementa os métodos da interface do evento.

ImportedFromTypeLibAttribute

Indica que o assembly foi importado originalmente de uma biblioteca de tipos COM.Esse atributo contém a definição de biblioteca de tipo de biblioteca de tipos do original.

TypeLibFuncAttribute

Contém o FUNCFLAGS que foram originalmente importados para esta função de biblioteca de tipos COM.

TypeLibTypeAttribute

Contém o TYPEFLAGS que foram originalmente importados para este tipo de biblioteca de tipos COM.

TypeLibVarAttribute

Contém o VARFLAGS que foram originalmente importados para essa variável de biblioteca de tipos COM.

Consulte também

Conceitos

Expondo componentes .NET estrutura para com.

Qualificação de tipos do .NET para interoperação

Empacotando um assembly para com.

Referência

System.Runtime.InteropServices

Outros recursos

Estendendo metadados usando atributos