Может кто-нибудь объяснить преимущества использования первичной сборки взаимодействия в .Net? - PullRequest
9 голосов
/ 15 октября 2008

Эта концепция является новой для меня, и коллега предложил ее. К сожалению, я понятия не имел, о чем он говорит. Может ли кто-нибудь просветить меня?

Ответы [ 3 ]

12 голосов
/ 15 октября 2008

Вы можете найти много информации об этом здесь .

В двух словах, PIA - это сборка взаимодействия со знаком, которая предоставляет «официальное» определение типов в библиотеке COM от издателя библиотеки COM.

Что касается преимуществ, опубликованная статья подытоживает это довольно хорошо:

PIA важны, потому что они предоставить уникальную идентификацию типа. ПИА различает официальный тип определения от контрафакта определения, предоставленные другим взаимодействием сборок. Имея один тип идентичность обеспечивает совместимость типов между приложениями, которые разделяют типы, определенные в PIA. Поскольку PIA подписана своим издателем и помечены с Атрибут PrimaryInteropAssembly, это можно отличить от других сборки взаимодействия, которые определяют такие же типы.

3 голосов
/ 15 октября 2008

Основная сборка взаимодействия обернет COM-интерфейсы в .NET-совместимые типы. Он не дает детального контроля, который делает ручной вызов методов, но он достаточно близок.

Без 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 });

с PIA:

MyCompany.MyApplication.MyObject obj = new MyObject();
string name = obj.GetCustomerName(_customerId);
1 голос
/ 11 августа 2014

Проще говоря, на примере, если вы хотите разработать приложение, похожее на любые другие офисные инструменты (MS Word, Visio ...) с расширенной функциональностью, вы можете использовать функциональность офисных инструментов в своем проекте с помощью PIA.In мое приложение для рисования диаграмм классов, используйте Панель Visio для создания диаграмм классов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...