2

如何访问属性类中的属性值。我正在编写一个自定义验证属性,该属性需要根据正则表达式检查属性的值。例如:

public class MyAttribute
{
public MyAttribute (){}

//now this is where i want to use the value of the property using the attribute. The attribute can be use in different classed
public string DoSomething()
{
//do something with the property value
}
}

Public class MyClass
{
[MyAttribute]
public string Name {get; set;}
}
4

1 回答 1

1

如果您只想使用正则表达式验证属性,则可以从 继承,有关如何执行此操作的示例RegularExpressionAttribute,请参阅https://stackoverflow.com/a/8431253/486434 。

但是,如果您想做一些更复杂的事情并访问您可以继承ValidationAttribute并覆盖 2 个虚拟方法的值IsValid。例如:

public class MyAttribute : ValidationAttribute
{
    public override bool IsValid(object value)
    {
        // Do your own custom validation logic here
        return base.IsValid(value);
    }

    protected override ValidationResult IsValid(object value, ValidationContext validationContext)
    {
        return base.IsValid(value, validationContext);
    }
}
于 2012-12-20T12:59:46.397 回答