Как зарегистрировать валидаторы FluentValidation во внешних сборках при использовании Nancy и .Net Core? - PullRequest
0 голосов
/ 05 октября 2018

Я использую Nancy.Validation.FluentValidation (v2.0.0), но я не могу зарегистрировать классы IValidator в моем контейнере DI (я использую Autofac), по-видимому, потому что они находятся во внешней сборке.

Согласно документации , вам приходилось вызывать AppDomainAssemblyTypeScanner.LoadAssemblies для явного сканирования этих сборок, но этот класс больше не существует.Как теперь должны регистрироваться валидаторы?

Я использую NancyFX v2.0.0-clinteastwood и .Net Core v2.1.

1 Ответ

0 голосов
/ 08 октября 2018

Похоже, что мне нужно быть более точным с моими регистрациями DI для валидатора в Нэнси, чем с Web Api.Я должен зарегистрировать определенные валидаторы, такие как

builder.RegisterType<MyTypeValidator>().As<IValidator<MyType>>();

, тогда как с Web Api мне не нужно было быть таким конкретным.Я использую шаблон декоратора, и с помощью Autofac и Web Api я могу зарегистрировать декоратор через

builder.RegisterType<MyTypeHandler>()
                                .Named<IHandler<MyType, IEnumerable<ReturnType>>>("handler");

containerBuilder.RegisterGenericDecorator(typeof(ValidationDecorator<,>),
                                                      typeof(MyTypeHandler<,>),
                                                      fromKey: "handler");

без необходимости регистрации отдельных валидаторов.

...