Загрузка абстрактного валидатора по типу модели - PullRequest
0 голосов
/ 27 января 2020

Этот вопрос относится к пакету nuget FluentValidation

У меня есть модель Person и модель адреса, и они оба наследуются от RecordTypeModel. Я свободно владею PersonValidator и AddressValidator. Затем у меня есть класс с именем CreateFile (модель RecordTypeModel).

RecordTypeModel класс имеет свойство RecordType

В CreateFile (), когда model.RecordType - Person, тогда я хочу создать PersonValidator instance.

Я пробовал это

var validator = GetValidatorInstance($"{item.RecordType}Validator") as AbstractValidator;

Проблема AbstractValidator от FluentValidation заставляет предоставить точную модель, и приведенный выше код дает мне ошибку:

Использование generi c type AbstractValidator<T> требует аргумента 1 типа

Я не хочу иметь кучу операторов switch / ifelse, так что есть ли способ сделать это generi c код работает?

...