在业务层,我有 3 个服务接口
IUserService
IRoleService
和IGroupService
一个验证器接口 IValidator IValidator 有 3 个实现 - UserValidator
, RoleValidator
, GroupValidator
.
IUserService is implemented by UserService(IValidator userValidator)
IRoleService is implemented by RoleService(IValidator userValidator)
IGroupServiceis implemented by GroupService(IValidator userValidator)
这三个服务都将 IValidator 作为构造函数参数。
在 web 层,我有 3 个控制器作为构造函数参数,UserController
作为构造函数参数,组控制器作为构造函数参数IUserService
RoleController
IRoleService
IGroupServiceas
我的问题:
我如何强制 roleService 获取RoleValidator
对象并GroupService
获取GroupValidator
对象。
我正在使用城堡温莎 3.1
windsorContainer.Register(Component.For<IValidator>()
.ImplementedBy<UserValidator>()
.Named("userValidator")
.LifestyleTransient());
windsorContainer.Register(Component.For<IValidator>()
.ImplementedBy<RoleValidator>()
.Named("roleValidator")
.LifestyleTransient());
windsorContainer.Register(Component.For<IValidator>()
.ImplementedBy<GroupValidator>()
.Named("groupValidator")
.LifestyleTransient());
我IsFallback()
在注册 userValidator 时使用,但所有 3 个服务都获得了 roleValidator 对象。