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.
Note
Esta orientação é específica para o .NET Framework. Para a interoperabilidade COM moderna do .NET, utilize a interoperabilidade COM gerada pelo código-fonte ou a API System.Runtime.InteropServices.ComWrappers. Para mais informações, consulte visão geral da interoperabilidade COM e geração de fontes COM.
As classes só podem ser organizadas por interoperabilidade COM e são sempre organizadas como interfaces. Em alguns casos, a interface usada para organizar a classe é conhecida como interface de classe. Para obter informações sobre como substituir a interface de classe por uma interface de sua escolha, consulte COM Callable Wrapper.
Embora qualquer desenvolvedor que queira usar tipos COM de um aplicativo .NET Framework possa gerar um assembly de interoperabilidade, isso cria um problema. Cada vez que um desenvolvedor importa e assina uma biblioteca de tipos COM, esse desenvolvedor cria um conjunto de tipos exclusivos que são incompatíveis com aqueles importados e assinados por outro desenvolvedor. A solução para esse tipo de problema de incompatibilidade é que cada desenvolvedor obtenha o assembly de interoperabilidade primário fornecido e assinado pelo fornecedor.
Se tenciona expor tipos COM de terceiros a outras aplicações, utilize sempre a assemblagem de interoperabilidade primária fornecida pelo mesmo fornecedor da biblioteca de tipos que define. Além de fornecer compatibilidade de tipo garantida, os assemblies de interoperabilidade primários geralmente são personalizados pelo fornecedor para melhorar a interoperabilidade.
Mesmo que não tencione expor tipos COM de terceiros, a utilização da assemblagem de interoperabilidade primária pode facilitar a tarefa de estabelecer interoperabilidade com componentes COM. No entanto, esta estratégia não oferece qualquer proteção contra alterações que um fornecedor possa fazer em tipos definidos numa assemblagem de interoperabilidade primária. Quando seu aplicativo exigir esse isolamento, gere seu próprio conjunto de interoperabilidade em vez de usar o conjunto de interoperabilidade primário.
Você deve registrar todos os assemblies de interoperabilidade primários adquiridos em seu computador de desenvolvimento antes de fazer referência a eles com o Visual Studio. O Visual Studio procura e utiliza uma assemblagem de interoperabilidade primária da primeira vez que referencia um tipo de uma biblioteca de tipos COM. Se o Visual Studio não puder localizar o assembly de interoperabilidade primário associado à biblioteca de tipos, ele solicitará que você o adquira ou oferecerá a criação de um assembly de interoperabilidade. Da mesma forma, o Importador de Bibliotecas de Tipos (Tlbimp.exe) também utiliza o registo para localizar assemblagens de interoperabilidade primárias.
Embora não seja necessário registar assemblies de interoperabilidade principais, a menos que pretenda usar o Visual Studio, o registo oferece duas vantagens:
- Um assembly de interoperabilidade primário registrado é claramente marcado sob a chave do Registro da biblioteca de tipos original. O registro é a melhor maneira de localizar um assembly de interoperabilidade primário em seu computador.
- Você pode evitar gerar e usar acidentalmente um novo assembly de interoperabilidade se, em algum momento no futuro, você usar o Visual Studio para fazer referência a um tipo para o qual você tem um assembly de interoperabilidade primária não registrado.
Utilize a Ferramenta de Registo de Assembly (Regasm.exe) para registar um assembly de interoperabilidade primário.
Registar um conjunto de interoperabilidade primária
Para registar uma assembly de interoperabilidade primária, na linha de comandos, introduza:
regasm <assemblyname>
Neste comando, assemblyname é o nome do arquivo do assembly que está registrado. Regasm.exe adiciona uma entrada para o assembly de interoperabilidade primário na mesma chave de registo que a biblioteca de tipos original.
Exemplo
O exemplo seguinte regista a CompanyA.UtilLib.dll assemblagem de interoperabilidade principal.
regasm CompanyA.UtilLib.dll