nameof(NotNullValidator)不适用于.net 5和FluentValidation 10



下午好,

我将我的项目更新到。net 5并更新了FluentValidation。AspNetCore升级到10.3.0版本。在单元测试中,我通常使用以下

ErrorCode = nameof(NotNullValidator) 

但是现在这个版本改变了,我有错误,因为NotEmptyValidator是一个T类,即

public class NotNullValidator<T,TProperty> : PropertyValidator<T, TProperty>
{
public override string Name => "NotNullValidator";
public override bool IsValid(ValidationContext<T> context, TProperty value)
{
return value != null;
}
protected override string 
GetDefaultMessageTemplate(string errorCode)
=> "A value for {PropertyName} is required";
}

我不知道如何获得验证器的名称。所有的验证器都是一样的。

你能帮我一下吗?

谢谢。

typeof中提供一个空的泛型类型参数将成功编译并返回该类型。然后,您可以访问FullName属性以获得字符串表示形式。

ErrorCode = typeof(NotNullValidator<,>).FullName

请注意,返回的字符串将在末尾包含泛型规范,以指示它是泛型类,如下所示:

NotNullValidator`2

最新更新