如何访问属性类中的属性值。我正在编写一个自定义验证属性,需要根据正则表达式检查属性的值。该 对于实例:
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;}
}
答案 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);
}
}