我有一个对象,它的属性用 Validation 属性装饰。我的验证工作正常,但是我需要一个额外的方法来根据这些属性执行字符串操作。
考虑以下对象:
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; }
}
我希望能够根据 StringLengthValidator 属性及其参数来操作“名称”。例如:
///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;
}
}
}
“length”的值出现为 null,而不是 54。如何获取该值? 希望这是有道理的,谢谢。
一个
最佳答案
这对我有用,你得到的 StringLengthValidator
属性是否与你认为的相同? (这是您的自定义类还是来自 Enterprise Lib 的类?
在我的例子中,我创建了一个自定义类 StringLengthValidator
关于c# - 从对象中读取验证属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12855143/