Dans mon application, je souhaite charger des assemblages résidant sur un partage réseau (l'application elle-même est également sur ce partage) sans avoir à les ajouter au chemin de sortie du projet. Ce que j'aimerais avoir, c'est un répertoire de sortie qui ne contienne que l'application. Ajouter simplement le répertoire cible au chemin de référence de mon projet ne fonctionnera pas.Référencement d'assemblages dans une application .Net
j'essayé de placer le répertoire de sondage dans le App.Config, mais cela ne fonctionne pas (même testé sur mes diks locaux au lieu du partage réseau)
Merci à l'avance pour les conseils!
EDIT: Apparaît la façon dont cela se passe conduit par la réflexion. N'y a-t-il pas une manière plus élégante d'utiliser des conteneurs d'injection de dépendances comme NInject?
Dans la plupart des cas, avoir tous les assemblages dans le chemin de sortie n'est pas si mauvais qu'il semble à première vue. Alors pourquoi pensez-vous que vous devez le faire différemment? –
Fondamentalement, vous avez raison - ne fait pas trop mal de les avoir là. Mais nous avons quelque part près de 12 Frontends qui utilisent une de nos libs dans la version 1.2.x et trois autres qui nécessitent 1.2.y (ou toute autre version, juste en donnant des nombres aléatoires). Donc, ce que nous faisons est d'extraire des interfaces de ces bibliothèques (pour les intégrer dans des projets) et de supprimer les assemblys d'implémentation de l'application (les mettre sur le réseau pour les charger dynamiquement).L'avantage de cette approche est que nous n'aurons même pas à recompiler notre application quand un correctif pour une bibliothèque devient nécessaire - l'interface reste la même. –
Ninject ne vous donne rien que vous ne pouvez pas faire par le code. Pour utiliser Ninject (et d'autres conteneurs DI), vous devez pouvoir charger l'assemblage d'une manière ou d'une autre. –