Nous avons une application qui chargera dynamiquement certains composants à partir de DLL séparées. Ces composants ont un nom fixe, mais nous souhaitons que les noms localisés soient affichés pour l'utilisateur. Les noms doivent donc être localisés. Le fait que le nom doit être localisé n'est pas une préoccupation du composant lui-même, donc nous ne voulons pas vraiment polluer le modèle du composant avec une propriété comme DisplayName ou LocalisedName, et avoir les ressources pour le composant vivant dans la DLL pour le composant. Mais comme ces composants sont enfichables, nous ne pouvons pas avoir la ressource pour le nom d'affichage en direct dans l'application, car lorsque nous avons ajouté de nouveaux composants, les ressources de l'application doivent être mises à jour, ce qui rend impossible le branchement des composants. .Comment localiser les composants enfichables
Y at-il une solution commune à ce problème? Les solutions possibles que nous avons pu voir étaient:
1 \ Avoir une propriété appelée nom d'affichage que le code gui appelle pour afficher les noms. Cela fonctionne bien, avec les ressources existant dans la même DLL que (ou les DLL satellites) de l'assembly qui contient le composant. Mais cela semble polluer le modèle avec des informations que le composant ne devrait pas prendre en compte. 2 \ Faire en sorte que l'application avec l'interface graphique recherche les ressources du composant nommé à partir de ses propres fichiers de ressources. Cela échoue car l'application doit mettre à jour ses ressources lorsque de nouveaux assemblys contenant de nouveaux composants chargés dynamiquement sont ajoutés.
3 \ Faites en sorte que l'application regarde dans les ressources de l'assemblage le composant provenant du nom localisé du composant. Cela semble bien car le nom localisé existe dans l'assembly pour le composant est donc distribué avec lui, mais l'application avec la couche de présentation instige la recherche de la chaîne localisée à partir des composants dll, de sorte que le composant n'a pas besoin de savoir quoi que ce soit localisation et donc son modèle n'est pas pollué.
L'option 3 est-elle possible? Y a-t-il une autre option que nous n'avons pas envisagée?
acclamations ...
J'ai joué un peu et j'ai fini avec quelque chose qui fonctionne. J'ai décrit ma solution proposée dans une autre question. http://stackoverflow.com/questions/1559716/is-this-une-good-solution-for-localisation-of-pluggable-components tout commentaire serait apprécié. –
voir mes commentaires là-bas ... – psychotik