使用属性访问属性值

时间:2012-12-20 08:52:09

标签: asp.net-mvc-3 c#-4.0 custom-attributes

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

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;}
}

1 个答案:

答案 0 :(得分:1)

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

但是,如果您想要执行更复杂的操作并访问该值,则可以从ValidationAttribute继承并覆盖2个虚拟方法IsValid。 E.g:

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);
    }
}