Qualcuno può spiegare i vantaggi dell'utilizzo di un assembly di interoperabilità primario in .Net?
-
03-07-2019 - |
Domanda
Questo concetto mi è nuovo e un collega lo ha suggerito. Purtroppo, non avevo idea di cosa stesse parlando. Qualcuno può illuminarmi?
Soluzione
Puoi trovare molte informazioni al riguardo qui .
In poche parole, un PIA è un gruppo di interoperabilità firmato che fornisce la "quotazione ufficiale" definizione dei tipi in una libreria COM dall'editore della libreria COM.
Per quanto riguarda i vantaggi, l'articolo pubblicato lo riassume abbastanza bene:
I PIA sono importanti perché fornire un'identità di tipo univoca. La PIA distingue il tipo ufficiale definizioni dalla contraffazione definizioni fornite da altre interoperabilità assiemi. Avere un solo tipo l'identità garantisce la compatibilità dei tipi tra le applicazioni che condividono il tipi definiti nel PIA. Perché il PIA è firmata dal suo editore e etichettato con il Attributo PrimaryInteropAssembly, esso può essere differenziato dagli altri interoperano assiemi che definiscono il stessi tipi.
Altri suggerimenti
Un assembly di interoperabilità primario avvolgerà le interfacce COM in tipi compatibili .NET. Non ti dà il controllo granulare che invoca manualmente i metodi, ma è abbastanza vicino.
Senza 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 });
Con un PIA:
MyCompany.MyApplication.MyObject obj = new MyObject();
string name = obj.GetCustomerName(_customerId);
Basta dire con un esempio, se si desidera sviluppare un'applicazione simile a qualsiasi altro strumento per ufficio (MS word, visio ...) con funzionalità estesa, è possibile utilizzare la funzionalità degli strumenti per ufficio nel proprio progetto utilizzando PIA.In la mia app per disegnare diagrammi di classe, usare pannello visio per la creazione di diagrammi di classe.