我有一套WebApi,MVC和Windows服务应用程序以及一个日志库(基于nLog)。日志库被打包为nuget(如果这很重要)。所有客户端和日志库都使用Castle Windsor。日志库有一组复杂的依赖项,目前在使用它的所有项目中,我粘贴了大量注册。
有没有办法让库使用一组默认依赖项(在其中自动注册),只有在需要非默认选项时才更改客户端中的那些?
答案 0 :(得分:3)
您可以创建installer来管理依赖项:
public class RepositoriesInstaller : IWindsorInstaller
{
public void Install(IWindsorContainer container, IConfigurationStore store)
{
//container.Register();
}
}
然后客户端可以将它安装在容器中,如下所示:
container.Install(new RepositoriesInstaller());
您可以在库中包含此安装程序(这意味着您的库将依赖于Castle Windsor)或创建包含安装程序的另一个包(MyLib.CastleWindsor等)。