Windsor-Castle:使用配置文件在程序集中注册所有类型

Nou*_*uny 4 c# configuration castle-windsor registration

在代码中我可以做这样的事情:

container.Register(AllTypes.FromAssemblyNamed("AssemblyName"));
Run Code Online (Sandbox Code Playgroud)

我可以使用配置文件"Windsor.Config"做同样的事情???

Krz*_*mic 18

回应你的评论.

还有第三种方式(在Windsor 2.5中,目前处于测试阶段2 - 预计很快就会发布).

您可以让每个模块都引用Windsor,每个模块都有自己的一组安装程序.

您可以使用新的目录扫描功能来安装所有这些程序集中的组件:

// In your root assembly
var container = new WindsorContainer();
container.Install(   
   FromAssembly.This(),
   FromAssembly.InDirectory(new AssemblyFilter("Modules")),
   Configuration.FromAppConfig()
)
Run Code Online (Sandbox Code Playgroud)

此外,如果您的组件具有相同的结构,则还可以在单​​个安装程序中注册来自多个组件的组件.在这里查看更多.

container.Register(
   AllTypes.FromAssemblyInDirectory(new AssemblyFilter("Modules"))
      .Where(t=>t.Namespace.EndsWith(".Services"))
      .WithService.DefaultInterface()
);
Run Code Online (Sandbox Code Playgroud)