我有两个继承自同一基类的类。
public class UserDetailValidator : BaseValidator<UserDetail>{
public UserDetailValidator(IRepository<Person, Guid> userRepository, AddressValidator addressValidator)
{
RuleFor(x => x.FirstName).Length(1, 10);
}
}
public class AddressValidator : BaseValidator<Address>
当我尝试从WindsorServiceLocator获取UserDetailValidator时,我收到错误
缺少依赖性。 组件UserDetailValidator依赖于AddressValidator,无法解析。 确保依赖项在容器中作为服务正确注册,或者作为内联参数提供。我在ValidationInstaller中使用以下内容。
container.Register(
AllTypes.FromAssemblyNamed("Validation")
.IncludeNonPublicTypes()
.BasedOn(typeof(IValidator<>))
.WithService.AllInterfaces()
.LifestyleTransient()
注入IRepository组件没有任何问题。只有AddressValidator没有进来。我做得不好?我正在使用Castle Windsor 3.0
答案 0 :(得分:0)
我改变了传递的Argument的类型 从AddressValidator到IValidator的UserDetailValidator。 我仍然必须使用AllInterfaces(至少在我的测试中),但是 它现在有效。