Eventos
Crie aplicativos e agentes de IA
17 de mar., 21 - 21 de mar., 10
Junte-se à série de encontros para criar soluções de IA escaláveis com base em casos de uso do mundo real com outros desenvolvedores e especialistas.
Registrar agoraNão há mais suporte para esse navegador.
Atualize o Microsoft Edge para aproveitar os recursos, o suporte técnico e as atualizações de segurança mais recentes.
A partir do .NET Framework 4, o Common Language Runtime dá suporte à inserção de informações de tipo de COM diretamente em assemblies gerenciados, em vez de exigir que estes obtenham informações de tipo de COM a partir de assemblies de interoperabilidade. Como as informações de tipo inserido incluem somente os tipos e os membros que são realmente usados por um assembly gerenciado, dois assemblies gerenciados podem ter exibições muito diferentes do mesmo tipo COM. Cada assembly gerenciado tem um objeto Type diferente para representar sua exibição do tipo COM. O Common Language Runtime dá suporte à equivalência de tipo entre essas exibições diferentes para interfaces, estruturas, enumerações e representantes.
Equivalência de tipo significa que um objeto COM que é passado de um assembly gerenciado para outro pode ser convertido no tipo gerenciado apropriado no assembly receptor.
Observação
Equivalência de tipo e tipos de interoperabilidade inseridos simplificam a implantação de aplicativos e suplementos que usam componentes COM, porque não é necessário implantar assemblies de interoperabilidade com os aplicativos. Os desenvolvedores de componentes COM compartilhados ainda precisam criar PIAs (assemblies de interoperabilidade primários) se desejam que seus componentes sejam usados por versões anteriores do .NET Framework.
Há suporte à equivalência de tipos COM em interfaces, estruturas, enumerações e representantes. Os tipos COM se qualificarão como equivalentes se todas as seguintes afirmações forem verdadeiras:
Os tipos são ambas interfaces, ambas estruturas, ambas enumerações ou ambas representantes.
Os tipos têm a mesma identidade, conforme descrito na próxima seção.
Ambos os tipos são elegíveis para equivalência de tipo, conforme descrito na seção Marcando tipos COM para a equivalência de tipo.
Dois tipos são determinados como tendo a mesma identidade quando seus escopos e identidades correspondem. Em outras palavras, se cada um tem o atributo TypeIdentifierAttribute e os dois atributos têm propriedades Scope e Identifier correspondentes. A comparação de Scope não diferencia maiúsculas de minúsculas.
Se um tipo não tiver o atributo TypeIdentifierAttribute ou se ele tiver um atributo TypeIdentifierAttribute que não especifica o escopo e o identificador, o tipo ainda poderá ser considerado para equivalência da seguinte maneira:
Para interfaces, o valor do GuidAttribute é usado em vez da propriedade TypeIdentifierAttribute.Scope e a propriedade Type.FullName (ou seja, o nome do tipo, incluindo o namespace) é usado em vez da propriedade TypeIdentifierAttribute.Identifier.
Para estruturas, enumerações e representantes, o GuidAttribute do assembly de contenção é usado em vez da propriedade Scope e a propriedade Type.FullName é usada em vez da propriedade Identifier.
É possível marcar um tipo como qualificado para a equivalência de tipo de duas maneiras:
Aplicar o atributo TypeIdentifierAttribute ao tipo.
Tornar o tipo um tipo de importação COM. Uma interface é um tipo de importação COM se ela tem o atributo ComImportAttribute. Uma interface, uma estrutura, uma enumeração ou um representante é um tipo de importação COM se o assembly no qual ele é definido tem o atributo ImportedFromTypeLibAttribute.
Comentários do .NET
O .NET é um projeto código aberto. Selecione um link para fornecer comentários:
Eventos
Crie aplicativos e agentes de IA
17 de mar., 21 - 21 de mar., 10
Junte-se à série de encontros para criar soluções de IA escaláveis com base em casos de uso do mundo real com outros desenvolvedores e especialistas.
Registrar agoraTreinamento
Módulo
Converter tipos de dados usando técnicas de conversão cast em C# - Training
Explore o uso de técnicas do C# para conversões e conversões.
Documentação
Como: Criar wrappers manualmente - .NET Framework
Crie wrappers de tipos COM manualmente. Use um arquivo IDL ou uma biblioteca de tipos ou crie declarações gerenciadas e exporte o assembly para uma biblioteca de tipos.
Interoperação com código não gerenciado - .NET Framework
Examinar interoperação com código não gerenciado. O CLR oculta de clientes e servidores como os modelos de objeto de componentes .NET e código não gerenciado diferem.