Aplicando atributos de interoperabilidade

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

Se você estiver familiarizado 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 tempo de design

Você pode ajustar o resultado do processo de conversão realizado por APIs e ferramentas de interoperabilidade COM, usando os atributos de tempo de design. A tabela a seguir descreve os atributos que você pode aplicar ao seu código fonte gerenciado. Ferramentas de interoperabilidade COM, na ocasião, 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 de um proxy e stub.

ClassInterfaceAttribute

Controla o tipo de interface gerado para uma classe.

CoClassAttribute

Identifica o CLSID do coclass original importado de uma biblioteca de tipo.

Ferramentas de interoperabilidade COM geralmente se aplicam a este atributo.

ComImportAttribute

Indica que uma definição de interface ou coclass foi importada de uma biblioteca de tipos COM. O runtime usa esse sinalizador para saber como ativar e empacotar o tipo. Este atributo proíbe o tipo sendo exportados de volta para uma biblioteca de tipos.

Ferramentas de interoperabilidade COM geralmente se aplicam a este atributo.

ComRegisterFunctionAttribute

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

ComSourceInterfacesAttribute

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

Ferramentas de interoperabilidade COM podem aplicar esse atributo.

ComUnregisterFunctionAttribute

Indica que um método deve ser chamado quando o assembly é cancelado de COM, para que o código escrito por usuário pode ser executado durante o processo.

ComVisibleAttribute

Processa tipos invisível COM quando o valor do atributo é igual a false. Esse atributo pode ser aplicado a um tipo individual ou a um assembly inteiro para controlar a visibilidade de COM. Por padrão, todos os tipos gerenciados e públicos são visíveis; o atributo não é necessário torná-los visíveis.

DispIdAttribute

Especifica o identificador de expedição COM (DISPID) de um campo ou método. Esse atributo contém o DISPID para o método, campo ou propriedade que ele descreve.

Ferramentas de interoperabilidade COM podem aplicar esse atributo.

FieldOffsetAttribute

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

GuidAttribute

Especifica o identificador global exclusivo (GUID) de uma classe, interface ou uma biblioteca de tipo inteiro. A seqüência de caracteres passada para o atributo deve ser um formato que é um argumento do construtor aceitável para o tipo de GUID.

Ferramentas de interoperabilidade COM podem aplicar esse atributo.

IDispatchImpAttribute

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

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 aos clientes do COM (Dual, derivada de IUnknown, ou apenas o 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 nos campos ou parâmetros devem ser empacotados entre código gerenciado e. O atributo sempre é opcional, porque cada tipo de dados tem um 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 para seu chamador.

PreserveSigAttribute

Suprime a transformação de assinatura HRESULT ou retval que normalmente ocorre durante chamadas de interoperação. O atributo afeta o empacotamento, bem como a exportação de biblioteca de tipo.

Ferramentas de interoperabilidade COM podem aplicar esse atributo.

ProgIdAttribute

Especifica o ProgID de um.Classe do NET Framework. 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 se aplicam durante o processo de conversão ferramentas de interoperabilidade COM. Você não aplicar esses atributos em tempo de design.

Atributo

Descrição

ComAliasNameAttribute

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

ComConversionLossAttribute

Indica que as 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 origem e a classe que implementa os métodos da interface de eventos.

ImportedFromTypeLibAttribute

Indica que o assembly originalmente foi importado 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

Referência

System.Runtime.InteropServices

Conceitos

Expondo.NET Framework para COM

Estendendo metadados usando atributos

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

Empacotamento de um Assembly para COM