Quelqu'un peut-il expliquer les avantages d'utiliser un assemblage d'interopérabilité primaire dans .Net?
-
03-07-2019 - |
Question
Ce concept est nouveau pour moi et un collègue l’a suggéré. Malheureusement, je ne savais pas de quoi il parlait. Quelqu'un peut-il m'éclairer?
La solution
Vous pouvez trouver de nombreuses informations à ce sujet ici .
En résumé, une PIA est un assemblage d'interopérabilité signé qui fournit les informations "officielles". définition des types dans une bibliothèque COM de l'éditeur de la bibliothèque COM.
En ce qui concerne les avantages, l'article publié le résume assez bien:
Les ÉFVP sont importantes car elles fournir une identité de type unique. La PIA distingue le type officiel définitions de contrefaçon définitions fournies par d'autres interop assemblées. Ayant un seul type identité assure la compatibilité des types entre les applications qui partagent le types définis dans la PIA. Parce que le PIA est signé par son éditeur et marqué avec le Attribut PrimaryInteropAssembly, il peut être différencié des autres assemblages interop qui définissent la mêmes types.
Autres conseils
Un assemblage d'interopérabilité primaire encapsulera les interfaces COM dans des types compatibles .NET. Cela ne vous donne pas le contrôle granulaire qui appelle manuellement les méthodes, mais il est suffisamment proche.
Sans 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 });
Avec une ÉFVP:
MyCompany.MyApplication.MyObject obj = new MyObject();
string name = obj.GetCustomerName(_customerId);
Si vous souhaitez développer une application semblable à n'importe quel autre outil bureautique (MS word, visio ...) doté de fonctionnalités étendues, vous pouvez utiliser la fonctionnalité des outils bureautiques de votre projet à l'aide de PIA.In mon application de dessin de diagramme de classe, utilisez panneau visio pour la création de diagrammes de classes.