¿Alguien puede explicar los beneficios de usar un ensamblaje de interoperabilidad primario en .Net?
-
03-07-2019 - |
Pregunta
Este concepto es nuevo para mí, y un colega lo sugirió. Lamentablemente, no tenía ni idea de qué estaba hablando. ¿Puede alguien iluminarme?
Solución
Puede encontrar mucha información al respecto aquí .
En pocas palabras, un PIA es un conjunto de interoperabilidad firmado que proporciona el " official " definición de tipos en una biblioteca COM del editor de la biblioteca COM.
En cuanto a los beneficios, el artículo publicado lo resume bastante bien:
Los PIA son importantes porque Proporcionar identidad de tipo único. La pia distingue el tipo oficial definiciones de falsificación Definiciones proporcionadas por otra interoperabilidad. asambleas. Tener un solo tipo identidad asegura la compatibilidad de tipos entre aplicaciones que comparten el Tipos definidos en el PIA. Porque el PIA está firmado por su editor y etiquetado con el El atributo PrimaryInteropAssembly, Se puede diferenciar de otros. ensamblajes de interoperabilidad que definen la mismos tipos.
Otros consejos
Un ensamblaje de interoperabilidad primario envolverá las interfaces COM en tipos compatibles con .NET. No le da el control granular que invoca manualmente los métodos, pero es lo suficientemente cerca.
Sin un 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);
Simplemente, a través de un ejemplo, si desea desarrollar una aplicación que se parezca a cualquier otra herramienta de oficina (MS word, visio ...) con funcionalidad extendida, puede usar la funcionalidad de herramientas de oficina en su proyecto usando PIA.In mi aplicación de dibujo de diagrama de clase, uso Panel de visio para la creación de diagramas de clase.