我一直在ASP.NET MVC 3的视图模型上使用FluentValidation,它的功能很棒!
我现在想将其用作服务层内域对象的验证引擎。
您可以使用它执行复杂的验证方案吗?
我正在寻找这样的东西:
public class MyService : IMyService
{
private readonly ISomeOtherService someOtherService;
public MyService(ISomeOtherService someOtherService)
{
this.someOtherService = someOtherService;
}
public bool SaveObject()
{
var validator = new MyValidator(someOtherService);
if (!validator.IsValid())
{
//spin through the validation results, add them to IValidationDictionary which is a ModelState wrapper
return false;
}
}
}
public class MyValidator : AbstractValidator<MyObject>
{
private readonly IOtherService service;
public MyValidator(ISomeOtherService service)
{
// Here I want to be able to perform complex validation rules that may involve other services??
}
}
这样的事情。我也愿意使用另一个验证库/方案吗?
谢谢!!
最佳答案
我通过创建结合ValidationService
的ValidatorFactory
解决了这个问题,我认为这是一个非常漂亮的解决方案。
这是ValidatorFactory
上的线程:FluentValidation Autofac ValidatorFactory