FluentValidation в сервизен слой?

Използвам FluentValidation на моите View Models в 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