Alguém pode explicar os benefícios de usar um assembly de interoperabilidade primário na Net?

StackOverflow https://stackoverflow.com/questions/204806

  •  03-07-2019
  •  | 
  •  

Pergunta

Este conceito é novo para mim, e um colega sugeriu. Infelizmente, eu não tinha ideia do que ele estava falando. Alguém pode me esclarecer?

Foi útil?

Solução

Você pode encontrar muitas informações sobre ele aqui .

Em poucas palavras, um PIA é um assinado interoperabilidade montagem que fornece a definição "oficial" de tipos em uma biblioteca COM da editora da biblioteca COM.

Quanto aos benefícios, o artigo somas postou-se muito bem:

PIAs são importantes porque fornecer identidade único tipo. o PIA distingue o tipo de oficial definições de falsificação definições fornecidas por outros interoperabilidade montagens. Ter um único tipo identidade garante a compatibilidade tipo entre as aplicações que a quota tipos definidos na PIA. Porque o PIA é assinado por seu editor e marcado com o atributo PrimaryInteropAssembly, ele pode ser diferenciada da outra módulos de interoperabilidade que definem o mesmos tipos.

Outras dicas

A interoperabilidade primária montagem vai envolver as interfaces COM em tipos compatíveis .NET. Ele não lhe dá o controle granular que chamando manualmente os métodos não, mas é perto o suficiente.

Sem um PIA:

object _comObject;
Type _comObjectType;
_comObjectType = Type.GetTypeFromProgID("MyCompany.MyApplication.MyObject", true);
_comObject = Activator.CreateInstance(_comObjectType);

string name = (string)_comObjectType.InvokeMember("GetCustomerName", BindingFlags.InvokeMethod, null, _comObject, , new object [] { _customerId });

Com um PIA:

MyCompany.MyApplication.MyObject obj = new MyObject();
string name = obj.GetCustomerName(_customerId);

Basta dizer através de um exemplo, se você quiser desenvolver um assemelha aplicação, como quaisquer outras ferramentas de escritório (MS Word, visio ...) com funcionalidade estendida, você pode usar a funcionalidade de ferramentas de escritório em seu projeto usando PIA.In meu diagrama de classe de desenho aplicativo, uso painel visio para criação de diagrama de classe.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top