我正在一个项目中有两个主要部分:一个类库程序集和主应用程序。两者都使用Castle Windsor进行IoC,并且都在代码中手动设置组件列表(以帮助重构并防止需要配置文件)。目前主要应用有这样的代码:图书馆大会IoC设置
public static void Main()
{
// Perform library IoC setup
LibraryComponent.Init();
// Perform application IoC setup
IoC.Register<IXyz, Abc>("abc");
// etc, etc, ...
// Start the application code ...
}
但是初始化库中的呼叫似乎并不像一个很好的解决方案。建立一个使用IoC容器来解耦其内部组件的类库的最佳方法是什么?
编辑:
Lusid使用库中的每个公共组件,将依次进行调用初始化一个静态方法建议。一种可能的方法是使用类似PostSharp这样的面向方面的方法做到这一点。但我希望的东西有点更优雅;-)
Lusid使用
AppDomain.AssemblyLoad
事件在加载时进行自定义的步骤还提出,但我的方式,以避免需要任何设置代码,客户端安装后真。
谢谢!
这是我试图解决的问题。尽管我想避免使用静态方法,因为它们必须继续使用每个库组件。 – 2009-01-20 05:12:12