如何在nuget库中管理Castle Windsor依赖项

时间:2014-11-21 11:52:19

标签: dependency-injection castle-windsor

我有一套WebApi,MVC和Windows服务应用程序以及一个日志库(基于nLog)。日志库被打包为nuget(如果这很重要)。所有客户端和日志库都使用Castle Windsor。日志库有一组复杂的依赖项,目前在使用它的所有项目中,我粘贴了大量注册。

有没有办法让库使用一组默认依赖项(在其中自动注册),只有在需要非默认选项时才更改客户端中的那些?

1 个答案:

答案 0 :(得分:3)

您可以创建installer来管理依赖项:

public class RepositoriesInstaller : IWindsorInstaller
{
   public void Install(IWindsorContainer container, IConfigurationStore store)
   {
      //container.Register();
   }
}

然后客户端可以将它安装在容器中,如下所示:

container.Install(new RepositoriesInstaller());

您可以在库中包含此安装程序(这意味着您的库将依赖于Castle Windsor)或创建包含安装程序的另一个包(MyLib.CastleWindsor等)。