C# .net Core Fluentvalidation手动验证获取验证器类实例

Raj*_*Gan 3 c# validation fluentvalidation asp.net-web-api asp.net-core

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

我正在使用 Asp .net core webapi 2,我在启动类中注册我的验证器

services.AddMvc().AddFluentValidation().
Run Code Online (Sandbox Code Playgroud)

在我的一种操作方法中,我必须验证规则集。所以我在本地创建我的验证器类

var validator = new MyClassValidator()
var result = validator.Validate(obj,ruleSet: "RulesetName");
Run Code Online (Sandbox Code Playgroud)

我试图避免这种说法var validator = new MyClassValidator()。我想使用 IOC 并获取一个实例。有什么帮助吗?

Ara*_*yan 5

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

services.AddTransient<IValidator<T>, MyClassValidator>();
Run Code Online (Sandbox Code Playgroud)

正如文档所述,您不需要手动使用此类的实例,FluentValidation将自动验证它。

FluentValidation 可以与 Asp.NET Core 集成。启用后,MVC 将使用FluentValidation 来验证模型绑定基础结构传递到控制器操作的对象

无论如何,如果您需要手动使用此类,只需将类型参数添加IValidator<T>到所需的构造函数即可。