Используйте беглую проверку для унаследованных классов |Для данного типа валидатор не зарегистрирован - PullRequest
0 голосов
/ 06 февраля 2019

У меня есть следующие классы и следующие валидаторы .

Теперь, когда я хочу вызвать мой валидатор из моего контроллера, я получаю ошибку

Для данного типа не зарегистрирован валидатор.

Тип animal, по-видимому, object.

Я называю валидатор следующим образом

if (validationService.IsValid(animal, ruleSetNames: new List<string>() { "Create" }, propertyNames: null))
{ // e.g. save to db }

Метод isValid(...) выглядит следующим образом

 public bool IsValid<T>(T oobject, List<string> ruleSetNames = null, 
 List<string> propertyNames = null)
 {
        // Create instance if object is null => prevent exceptions
        if (oobject == null)
        {
            oobject = Activator.CreateInstance<T>();
        }

        // Get validator for T oobject
        var validator = validationFactory.GetValidator<T>();

        // Execute validator
        var validationResult = validator.Validate(oobject, selector: new ValidatorSelector(ruleSetNames: ruleSetNames, propertyNames: propertyNames));

        // If there are any errors, add them to service
        if (!validationResult.IsValid)
        {
            addErrorsToList(validationResult);
        }

        // Return result
        return validationResult.IsValid;
    }  

Нужна ваша помощь, пожалуйста:)

...