Kann jemand die Vorteile der Verwendung einer primären Interop-Assembly in .net erklären?
-
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?
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.