excuses pour le titre, je suis resté bloqué pour les motsExpose version du MEF chargée « plugin »
Je tremper mes orteils dans l'étang MEF. Jusqu'ici tout va bien. J'ai une application hôte et quelques assemblages "plugin" qui exportent des choses. L'application hôte définit un attribut appelé DescriptionAttribute
qui hérite de ExportAttribute
et possède une propriété Name
simple. Mon formulaire de test a un <ImportMany>
IEnumerable(Of Lazy(Of IDoStuff, IDescriptionAttribute))
. Cela devient bien rempli par MEF, je peux tourner à travers la collection, la propriété Name
est remplie, la vie est en or. Je vais diviser les choses en assemblages séparés plus tard, pour le moment c'est juste une preuve de concept.
Maintenant, la question est: Est-il possible que je peux exposer la version d'assemblage de la mise en œuvre IDoStuff
, DescriptionAttribute
portant des classes « plug-in » à travers l'attribut DescriptionAttribute
que j'ai? Toutes mes tentatives pour le transmettre au constructeur de l'attribut ont échoué, studio ne cesse de me dire qu'une expression constante est nécessaire (c'est compréhensible). Je peux l'exposer par l'intermédiaire de l'interface IDoStuff, mais ce serait bien plus agréable de l'intégrer dans l'attribut DescriptionAttribute
, qui "se sent" mieux. Je peux aussi le coder en dur, mais c'est un autre point que j'oublierais de mettre à jour lors de la sortie d'une nouvelle version d'un "plugin" :-)
Ah, le 'ol GetType, je n'oublie pas celui-là. Ouais, ce serait une solution viable. Et si j'ai besoin de quelque chose d'autre que cela, je pourrais le coder en dur en tant que paramètre de l'attribut DescriptionAttribute. Je l'ai essayé, ça marche, vous êtes un champion Matt! –