Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
O System.Runtime.InteropServices namespace fornece três categorias de atributos específicos de interoperabilidade: aqueles aplicados por você no tempo de desenvolvimento, aqueles aplicados por ferramentas ou APIs de interoperabilidade COM durante o processo de conversão, e aqueles aplicados por você ou por ferramentas ou APIs de interoperabilidade COM.
Se você não estiver familiarizado com a tarefa de aplicar atributos ao código gerenciado, consulte Estendendo metadados usando atributos. Como outros atributos personalizados, você pode aplicar atributos específicos de interoperabilidade a tipos, métodos, propriedades, parâmetros, campos e outros membros.
Design-Time Atributos
Você pode ajustar o resultado do processo de conversão executado por ferramentas de interoperabilidade COM e APIs usando atributos de tempo de design. A tabela a seguir descreve os atributos que você pode aplicar ao código-fonte gerenciado. As ferramentas de interoperabilidade COM, ocasionalmente, também podem aplicar os atributos descritos nesta tabela.
| Atributo | Descrição |
|---|---|
| AutomationProxyAttribute | Especifica se o tipo deve ser empacotado usando o marshaller de automação ou um proxy e stub personalizados. |
| ClassInterfaceAttribute | Controla o tipo de interface gerada para uma classe. |
| CoClassAttribute | Identifica o CLSID da coclasse original importada de uma biblioteca de tipos. As ferramentas de interoperabilidade COM normalmente aplicam esse atributo. |
| ComImportAttribute | Indica que uma definição de coclasse ou interface foi importada de uma biblioteca de tipos COM. O tempo de execução usa este sinalizador para saber como ativar e gerir o tipo. Este atributo proíbe que o tipo seja exportado de volta para uma biblioteca de tipos. As ferramentas de interoperabilidade COM normalmente aplicam esse atributo. |
| ComRegisterFunctionAttribute | Indica que um método deve ser chamado quando o assembly é registrado para uso a partir de COM, para que o código escrito pelo usuário possa ser executado durante o processo de registro. |
| ComSourceInterfacesAttribute | Identifica interfaces que são fontes de eventos para a classe. As ferramentas de interoperabilidade COM podem aplicar esse atributo. |
| ComUnregisterFunctionAttribute | Indica que um método deve ser chamado quando o assembly não é registrado do COM, para que o código escrito pelo usuário possa ser executado durante o processo. |
| ComVisibleAttribute | Torna os tipos invisíveis para COM quando o valor do atributo é igual a false. Este atributo pode ser aplicado a um tipo individual ou a um conjunto inteiro para controlar a visibilidade COM. Por padrão, todos os tipos públicos gerenciados são visíveis; o atributo não é necessário para torná-los visíveis. |
| DispIdAttribute | Especifica o identificador de despacho COM (DISPID) de um método ou campo. Este atributo contém o DISPID para o método, campo ou propriedade que descreve. As ferramentas de interoperabilidade COM podem aplicar esse atributo. |
| ComDefaultInterfaceAttribute | Indica a interface padrão para uma classe COM implementada no .NET. As ferramentas de interoperabilidade COM podem aplicar esse atributo. |
| FieldOffsetAttribute | Indica a posição física de cada campo dentro de uma classe quando usado com o StructLayoutAttribute, e o LayoutKind é definido como Explicit. |
| GuidAttribute | Especifica o identificador global exclusivo (GUID) de uma classe, interface ou biblioteca de tipos inteira. A cadeia de caracteres passada para o atributo deve ser um formato que seja um argumento de construtor aceitável para o tipo System.Guid. As ferramentas de interoperabilidade COM podem aplicar esse atributo. |
| IDispatchImplAttribute | Indica qual implementação de interface IDispatch o Common Language Runtime usa ao expor interfaces duplas e dispinterfaces para COM. |
| InAttribute | Indica que os dados devem ser empacotados para o chamador. Pode ser usado para atribuir parâmetros. |
| InterfaceTypeAttribute | Controla como uma interface gerenciada é exposta a clientes COM (Dual, IUnknown-derived, ou IDispatch somente). As ferramentas de interoperabilidade COM podem aplicar esse atributo. |
| LCIDConversionAttribute | Indica que uma assinatura de método não gerenciado espera um parâmetro LCID. As ferramentas de interoperabilidade COM podem aplicar esse atributo. |
| MarshalAsAttribute | Indica como os dados em campos ou parâmetros devem ser agrupados entre código gerenciado e não gerenciado. O atributo é sempre opcional porque cada tipo de dados tem comportamento de empacotamento padrão. As ferramentas de interoperabilidade COM podem aplicar esse atributo. |
| OptionalAttribute | Indica que um parâmetro é opcional. As ferramentas de interoperabilidade COM podem aplicar esse atributo. |
| OutAttribute | Indica que os dados em um campo ou parâmetro devem ser convertidos de um objeto invocado de volta para o 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 da biblioteca de tipos. As ferramentas de interoperabilidade COM podem aplicar esse atributo. |
| ProgIdAttribute | Especifica o ProgID de uma classe .NET. Pode ser usado para atribuir classes. |
| StructLayoutAttribute | Controla o layout físico dos campos de uma classe. As ferramentas de interoperabilidade COM podem aplicar esse atributo. |
Conversion-Tool Atributos
A tabela a seguir descreve os atributos que as ferramentas de interoperabilidade COM aplicam durante o processo de conversão. Você não aplica esses atributos durante a fase de design.
| Atributo | Descrição |
|---|---|
| ComAliasNameAttribute | Indica o alias COM para um parâmetro ou tipo de campo. Pode ser usado para atribuir parâmetros, campos ou valores de retorno. |
| ComConversionLossAttribute | Indica que as informações sobre uma classe ou interface foram perdidas quando foram importadas de uma biblioteca de tipos para um assembly. |
| ComEventInterfaceAttribute | Identifica a interface de origem e a classe que implementa os métodos da interface de evento. |
| ImportedFromTypeLibAttribute | Indica que a assembly foi importada originalmente de uma biblioteca de tipos COM. Este atributo contém a definição de biblioteca de tipos da biblioteca de tipos original. |
| TypeLibFuncAttribute | Contém os FUNCFLAGS que foram originalmente importados para esta função da biblioteca de tipos COM. |
| TypeLibTypeAttribute | Contém os TYPEFLAGS que foram originalmente importados da biblioteca de tipos COM destinados a este tipo. |
| TypeLibVarAttribute | Contém os VARFLAGS que foram originalmente importados para esta variável da biblioteca de tipos COM. |