我想动态解析对象树以进行一些自定义验证。验证本身并不重要,但我想更好地理解 PropertyInfo 类。
我会做这样的事情:
public bool ValidateData(object data)
{
foreach (PropertyInfo propertyInfo in data.GetType().GetProperties())
{
if (the property is a string)
{
string value = propertyInfo.GetValue(data, null);
if value is not OK
{
return false;
}
}
}
return true;
}
实际上,我目前唯一关心的部分是“如果属性是字符串”。如何从 PropertyInfo 对象中找出它的类型?
我将不得不处理基本的东西,比如字符串、整数、双精度数。但我也必须处理对象,如果是这样,我将需要在这些对象内部进一步遍历对象树以验证它们内部的基本数据,它们还将有字符串等。
Use PropertyInfo.PropertyType获取属性的类型。
public bool ValidateData(object data)
{
foreach (PropertyInfo propertyInfo in data.GetType().GetProperties())
{
if (propertyInfo.PropertyType == typeof(string))
{
string value = propertyInfo.GetValue(data, null);
if value is not OK
{
return false;
}
}
}
return true;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)