Кто-нибудь может объяснить преимущества использования первичной сборки взаимодействия в .Net?

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

  •  03-07-2019
  •  | 
  •  

Вопрос

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

Это было полезно?

Решение

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

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

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

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

Другие советы

Основная сборка взаимодействия преобразует COM-интерфейсы в .Типы, совместимые с СЕТЬЮ.Это не дает вам детального контроля, который дает ручной вызов методов, но это достаточно близко.

Без ПИА:

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);

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top