FluentValidation на сервисном уровне?

Я использую FluentValidation в своих моделях просмотра в ASP.NET MVC 3, и это работает потрясающе!

Теперь я хочу использовать его в качестве моего механизма проверки для моих объектов домена внутри моего сервисного уровня.

Можете ли вы делать с ним сложные схемы проверки?

Я ищу что-то вроде этого:

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??
    }
}

Что-то вроде этого. Также я открыт для использования другой библиотеки/схемы проверки?

Спасибо!!


person Sam    schedule 31.08.2012    source источник


Ответы (1)


Я решил эту проблему, создав ValidationService в сочетании с ValidatorFactory, я думаю, это довольно удачное решение.

Вот ветка на ValidatorFactory: FluentValidation Autofac ValidatorFactory

person Sam    schedule 04.09.2012