温莎城堡 - 按惯例注册

5NR*_*NRF 6 c# dependency-injection castle-windsor

我有一个Castle Windsor用于 DI 容器的项目。

最初这是一个小项目,所以我一直单独注册每个班级,但是该项目现在正在增长,所以我想按惯例注册,但是我发现文档很难适用于我的情况。

无需过多赘述,我有一个项目,其中包含每个遵循命名约定的接口,例如IUserService.csor IBuildingService.cs

然后我有另一个项目,其中包含坚持类似约定的实现UserService.csBuildingSevice.cs

目前,这需要两次单独调用Kernel.Register.

我知道可以按惯例注册,我只是不熟悉语法 - 任何人都可以提供一些指导?

Gil*_*een 6

我想你要找的是这个:

container.Register(Classes.FromThisAssembly() 
    .WithService.DefaultInterfaces());
Run Code Online (Sandbox Code Playgroud)

如果实现与注册代码不在同一个程序集中,则使用其他“FromAssembly”方法

Castle 的文档非常好:)