我有一个项目使用Castle Windsor
作为DI容器。
最初这是一个小项目所以我一直在单独注册每个班级,但是项目现在正在增长,所以我想按惯例注册,但是我发现文档很难适用于我的情况。
我没有太多细节,我有一个项目,其中包含遵循命名约定的接口,例如IUserService.cs
或IBuildingService.cs
。
然后我有另一个项目,其中包含坚持类似约定的实现UserService.cs
或BuildingSevice.cs
此时需要两次单独调用Kernel.Register
。
我知道按惯例注册是可能的,我只是不熟悉语法 - 任何人都可以提供一些指导吗?
答案 0 :(得分:4)
我认为你在寻找的是:
container.Register(Classes.FromThisAssembly()
.WithService.DefaultInterfaces());
如果实施不与注册码位于同一个程序集中,则使用另一个" FromAssembly"方法
Castle's documentation相当不错:)