我使用内置容器的ASP.NET Core。
注册应该完成like so:
services
.AddMvc()
.AddFluentValidation(fv => fv.RegisterValidatorsFromAssemblyContaining<Startup>())
这会自动1)配置FluentValidation,并且2)注册在程序集中找到的所有验证程序。
但我想手动注册我的验证器。我该怎么做?
答案 0 :(得分:2)
您将要开始考虑使用ValidatorFactory。因此,与您调用添加FluentValidation不同,您的调用将如下所示:
.AddFluentValidation(fv => fv.ValidatorFactory = new MyValidatorFactory())
您需要在IOC容器中注册验证器。在自定义的ValidatorFactory实现中,您需要覆盖CreateInstance并让它使用IOC容器为您解析验证器。
https://github.com/JeremySkinner/FluentValidation/wiki/i.-IoC
答案 1 :(得分:2)
// must first setup FV
services
.AddMvc()
.AddFluentValidation(fv => {});
// can then manually register validators
services.AddTransient<IValidator<Foo>, FooValidator>();
services.AddTransient<IValidator<Bar>, BarValidator>();