C# .net Core Fluentvalidation 手动验证 get validator class instance

C# .net Core Fluentvalidation manual validation get validator class instance

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

我正在使用 Asp .net core webapi 2,我在启动 class 中使用

注册我的验证器
services.AddMvc().AddFluentValidation().

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

var validator = new MyClassValidator()
var result = validator.Validate(obj,ruleSet: "RulesetName");

我正在努力避免这种说法var validator = new MyClassValidator()。 我想使用 IOC 并获得一个实例。有帮助吗?

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

services.AddTransient<IValidator<T>, MyClassValidator>();

As documentation states,您不需要手动使用此 class 的实例,FluentValidation 会自动验证它。

FluentValidation can be integrated with Asp.NET Core. Once enabled, MVC will use FluentValidation to validate objects that are passed in to controller actions by the model binding infrastructure.

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