Quelqu'un peut-il expliquer les avantages d'utiliser un assemblage d'interopérabilité primaire dans .Net?

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

  •  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?

Était-ce utile?

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.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top