C#.net核心Fluentvalidation手动验证获取验证程序类实例

C#.net核心Fluentvalidation手动验证获取验证程序类实例,c#,validation,asp.net-web-api,asp.net-core,fluentvalidation,C#,Validation,Asp.net Web Api,Asp.net Core,Fluentvalidation,我正在尝试获取验证器类实例,而不是在方法中手动启动 我使用的是Asp.net core webapi 2,我在启动类中使用 services.AddMvc().AddFluentValidation(). 在我的一个操作方法中,我必须验证一个规则集。所以我在本地创建我的验证器类,就像 var validator = new MyClassValidator() var result = validator.Validate(obj,ruleSet: "RulesetName"); 我试图避免

我正在尝试获取验证器类实例,而不是在方法中手动启动

我使用的是Asp.net core webapi 2,我在启动类中使用

services.AddMvc().AddFluentValidation().
在我的一个操作方法中,我必须验证一个规则集。所以我在本地创建我的验证器类,就像

var validator = new MyClassValidator()
var result = validator.Validate(obj,ruleSet: "RulesetName");
我试图避免使用这种语句
var validator=new MyClassValidator()

我想使用IOC并获得一个实例。有什么帮助吗?

需要在IoC容器中手动注册
MyClassValidator

services.AddTransient<IValidator<T>, MyClassValidator>();
services.AddTransient();
,您不需要手动使用此类的实例,
FluentValidation
将自动对其进行验证

FluentValidation可以与Asp.NET核心集成。一旦启用, MVC将使用FluentValidation来验证传入的对象 通过模型绑定基础结构控制操作


无论如何,如果需要手动使用该类,只需将类型为
IValidator
的参数添加到所需的构造函数中即可。

目前我正在注册服务。AddMvc().AddFluentValidation(fv=>fv.RegisterValidatorsFromAssemblyContaining());是否可以添加服务。AddTransient();再一次?我觉得我们注册了两次验证器类..
fv.RegisterValidatorsFromAssemblyContaining()
如果调用此函数,验证器已经在IoC中注册,因此您可以在构造函数参数中获取。是的,在构造函数中使用IValidator是有效的。在提出这个问题之前,我也试过同样的方法,但那次没有用。。不确定我遗漏了什么。您是否尝试简单地将相应的
IValidator
添加到控制器构造函数中?