.NET中的依赖注入和加载依赖程序集

jon*_*iba 1 dependencies assemblies dependency-injection castle-windsor

我正在使用依赖注入(从现在开始的DI)来解析组件,并且正在寻找在.NET环境中加载相关程序集的优雅解决方案.作为解释,假设我们有3个组件,A,B和C,其中A依赖于B而B依赖于C.现在我需要从组件A加载组件,但因为我使用DI,我不有一个对程序集A的引用.甚至对程序集A的引用也是不够的,因为我不知何故需要确保A,B和C都在我的输出目录中结束.

因此,一些明显的解决方案是:
- 从执行的应用程序添加对A,B和C的引用:需要知道依赖结构,在我的情况下,这是非常复杂的,这使得这是一个有点不受欢迎的解决方案.
- 将这些dll添加到GAC:在我的情况下,这不是一个选项.


所以我想知道是否有人对这个问题有一个优雅的解决方案.不确定它是否相关,但我正在使用Castle Windsor进行DI.

谢谢
Joni

Dav*_*vid 5

AssemblyResolve在您的AppDomain上调用了一个事件,使您有机会加载缺少的程序集.这使您可以从您提供的任何流中加载缺少的程序集,例如不同文件夹中的文件或存储在数据库中的文件.