我有一个对象,它具有用Validation属性装饰的属性。我的验证工作正常,但是我需要一个额外的方法来执行基于这些属性的字符串操作。从对象读取验证属性
考虑以下对象:立足StringLengthValidator属性和参数
public class Pupil
{
/// <summary>
///
/// </summary>
public Pupil()
{
}
[NotNullValidator]
[StringLengthValidator(0, 54, MessageTemplate = "Invalid value '{0}' for {1}, Max length: {5}")]
public string Name{ get; set; }
[NotNullValidator]
[StringLengthValidator(0, 2, MessageTemplate = "Invalid value '{0}' for {1}, Max length: {5}")]
public string Gender{ get; set; }
}
我希望能够操纵“名称”。例如:
///Takes a Pupil object in
public static void DoManipulation(object value)
{
foreach(var property in value.GetType().GetProperties())
{
if(property.Name == "Name")
{
var att = property.GetCustomAttributes(typeof(StringLengthValidator), false);
var length = ((StringLengthValidator)att[0]).UpperBound;
}
}
}
“长度”的值为空,而不是54.我如何获得该值? 希望这是有道理的,谢谢。
A
工作在ASP.NET MVC? –
确定长度为空?这是一个整数属性,所以我非常怀疑它。你确定它已经达到了设定长度的点吗? –