我正在编写位于类上但检查类属性的验证属性。我希望它在它发现无效的每个属性上设置验证消息。我该怎么做?
这是我目前得到的:
[AttributeUsage(AttributeTargets.Class, AllowMultiple = false, Inherited = true)]
public class LinkedFieldValidationAttribute : ValidationAttribute
{
private readonly string[] _properiesToValidate;
public LinkedFieldValidationAttribute(params string[] properiesToValidate)
{
_properiesToValidate = properiesToValidate;
}
public override bool IsValid(object value)
{
PropertyDescriptorCollection properties = TypeDescriptor.GetProperties(value);
foreach (var propertyName in _properiesToValidate)
{
var propertyValue = properties.Find(propertyName, false).GetValue(value);
//if value is invalid add message from base
}
//return validity
}
}
最佳答案
使用the other overload of IsValid
可以返回 ValidationResult
而不是 bool
。
关于c# - 如何使用类验证属性在属性上动态设置验证消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2666897/