我一直在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??
    }
}

这样的事情。我也愿意使用另一个验证库/方案吗?

谢谢!!

最佳答案

我通过创建结合ValidationServiceValidatorFactory解决了这个问题,我认为这是一个非常漂亮的解决方案。

这是ValidatorFactory上的线程:FluentValidation Autofac ValidatorFactory

10-01 17:34