Kann jemand die Vorteile der Verwendung einer primären Interop-Assembly in .net erklären?

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

  •  03-07-2019
  •  | 
  •  

Frage

Dieses Konzept ist neu für mich, und ein Kollege schlug es. Leider hatte ich keine Ahnung, wovon er spricht. Kann mich jemand aufklären?

War es hilfreich?

Lösung

Sie können eine Fülle von Informationen finden darüber href="http://msdn.microsoft.com/en-us/library/aa302338.aspx" rel="noreferrer"> hier

Auf dem Punkt gebracht, ein PIA ist eine signierte Interop-Assembly, die die „offizielle“ Definition von Typen in einer COM-Bibliothek vom Herausgeber der COM-Bibliothek zur Verfügung stellt.

In Bezug auf die Vorteile, die gepostete Artikel fasst es ziemlich gut:

  

PIAs sind wichtig, weil sie   bietet einzigartige Art Identität. der PIA   unterscheidet die offizielle Art   Definitionen von Fälschung   Definitionen von anderen interop bereitgestellt   Baugruppen. Mit einem einzigen Typ   Identität gewährleistet, wenn Kompatibilität   zwischen Anwendungen, die den Anteil   Typen in der PIA definiert. Weil das   PIA wird von seinem Verlag unterzeichnet und   mit der beschrifteten   PrimaryInteropAssembly Attribut, es   kann von anderen unterschieden werden   Interopassemblys dass die definieren   gleiche Typen.

Andere Tipps

Eine primäre Interop-Assembly werden die COM-Schnittstellen in .NET kompatible Typen wickeln. Dabei spielt es keine geben Ihnen die granulare Kontrolle, die die Methoden manuell aufrufen tut, aber es ist nah genug.

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

Mit einem PIA:

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

Sie einfach durch ein Beispiel zu sagen, wenn Sie eine Anwendung ähnelt wie alle anderen Office-Tools (MS Wort, visio ...) entwickeln wollen mit erweiterter Funktionalität, können Sie die Funktionalität von Office-Tools in Ihrem Projekt verwenden PIA.In mit meine Klassendiagramm Zeichnung app, Verwendung visio Panel für Klassendiagrammerstellung.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top