Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
O System.Runtime.InteropServices namespace fornece três categorias de atributos específicos de interoperabilidade: aqueles aplicados por você em tempo de design, aqueles aplicados por ferramentas e APIs de interoperabilidade COM durante o processo de conversão e aqueles aplicados por você ou pela interoperabilidade COM.
Se você não estiver familiarizado com a tarefa de aplicar atributos ao código gerenciado, consulte Estendendo metadados usando atributos. Assim como outros atributos personalizados, você pode aplicar atributos específicos de interoperabilidade a tipos, métodos, propriedades, parâmetros, campos e outros membros.
Atributos de Design-Time
Você pode ajustar o resultado do processo de conversão executado pelas ferramentas e APIs de interoperabilidade COM por meio de atributos de tempo de projeto. A tabela a seguir descreve os atributos que você pode aplicar ao código-fonte gerenciado. As ferramentas de interoperabilidade COM, em algumas ocasiões, também podem aplicar os atributos descritos nesta tabela.
| Atributo | Descrição |
|---|---|
| AutomationProxyAttribute | Especifica se o tipo deve ter o marshaling realizado usando o marshaler de Automação ou um stub e proxy personalizados. |
| ClassInterfaceAttribute | Controla o tipo de interface gerada para uma classe. |
| CoClassAttribute | Identifica o CLSID da coclass original importado de uma biblioteca de tipos. Normalmente, as ferramentas de interoperabilidade COM aplicam esse atributo. |
| ComImportAttribute | Indica que uma definição de coclasse ou interface foi importada de uma biblioteca de tipos COM. O runtime usa esse sinalizador para saber como ativar e realizar marshaling do tipo. Esse atributo proíbe que o tipo seja exportado de volta para uma biblioteca de tipos. Normalmente, as ferramentas de interoperabilidade COM aplicam esse atributo. |
| ComRegisterFunctionAttribute | Indica que um método deve ser chamado quando o assembly é registrado para uso do 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 é desregistrado do COM, de modo que o código escrito pelo usuário possa ser executado enquanto o processo ocorre. |
| ComVisibleAttribute | Renderiza tipos invisíveis para 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 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 DISPID (identificador de expedição COM) de um método ou campo. Esse atributo contém o DISPID para o método, campo ou propriedade que ele descreve. As ferramentas de interoperabilidade COM podem aplicar esse atributo. |
| ComDefaultInterfaceAttribute | Indica a interface padrão de 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 GUID (identificador global exclusivo) de uma classe, interface ou uma 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 da interface IDispatch o Common Language Runtime usa ao expor interfaces duplas e dispinterfaces ao COM. |
| InAttribute | Indica se os dados devem ter o marshaling realizado para o chamador. Pode ser usado para atribuir parâmetros. |
| InterfaceTypeAttribute | Controla como uma interface gerenciada é exposta a clientes COM (Dual, derivada de IUnknown ou somente IDispatch). 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 empacotados entre código gerenciado e não gerenciado. O atributo sempre é opcional, porque cada tipo de dados tem um comportamento de marshaling 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 se os dados em um campo ou parâmetro devem ter o marshaling realizado de um objeto chamado novamente 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 marshaling, 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. |
Atributos de Conversion-Tool
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 o desenvolvimento.
| 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 retornados. |
| ComConversionLossAttribute | Indica que as informações sobre uma classe ou interface foram perdidas quando elas 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 do evento. |
| ImportedFromTypeLibAttribute | Indica que a assemblagem foi originalmente importada de uma biblioteca de tipos COM. Esse atributo contém a definição de biblioteca de tipos da biblioteca de tipos original. |
| TypeLibFuncAttribute | Contém o FUNCFLAGS que foi originalmente importado para essa função da biblioteca de tipos COM. |
| TypeLibTypeAttribute | Contém o TYPEFLAGS que foi originalmente importado para esse tipo da biblioteca de tipos COM. |
| TypeLibVarAttribute | Contém o VARFLAGS que foi originalmente importado para essa variável da biblioteca de tipos COM. |