gpt4 book ai didi

C# 无法使用自定义验证属性验证属性

转载 作者:太空宇宙 更新时间:2023-11-03 21:34:12 27 4
gpt4 key购买 nike

我有一个验证类:

public sealed class ValidationSet : ValidationAttribute
{
private List<string> _set = new List<string>();
public ValidationSet(params string[] setOfValues)
{
_set = setOfValues.ToList();
}

protected override ValidationResult IsValid(object value, ValidationContext validationContext)
{
if (!(_set.Select(s => s.ToLower()).Contains(value.ToString().ToLower())))
{
throw new Exception("not in the set");
}
return ValidationResult.Success;
}
}

下面是我如何使用它:

public class Car
{
[ValidationSet("honda", "gm")]
public string CarMake{ get; set; }

}

当我通过以下方式实例化 Car 类时:

...
Car c = new Car();
c.CarMake = "ford";
...

什么都不会发生,如果我打印 c.CarMake,它会显示 ford - 验证没有发生。

我只是想知道我在这里错过了什么。

谢谢!

最佳答案

只是实例化类并分配字段不会调用 IsValid,您需要在检查 Car 的框架中使用类,看到它在 CarMake 上具有 ValidationAttribute 并将调用 IsValid。

在此示例中,asp:DynamicValidator 正在执行以下工作:

How to: Customize Data Field Validation

关于C# 无法使用自定义验证属性验证属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22567511/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com