我需要通过反射获取 C# 中的属性值。
我需要找到字符串的长度并与 max 进行比较。
我写这段代码:
public static bool ValidateWithReflection(T model)
{
bool validate = false;
var cls = typeof(T);
PropertyInfo[] propertyInfos = cls.GetProperties();
foreach (PropertyInfo item in propertyInfos)
{
var max = item.GetCustomAttributes<MaxLenghtName>().Select(x => x.Max).FirstOrDefault();
if (max != 0)
{
var lenght = item.GetType().GetProperty(item.Name).GetValue(cls, null);
if ((int)lenght > max)
{
return validate = true;
}
}
}
return validate;
}
这是为了获取财产的价值:
var lenght = item.GetType().GetProperty(item.Name).GetValue(cls, null);
但它告诉我这个错误:
Message "Object does not match target type." string
现在有什么问题吗?我怎么解决这个问题 ?
一只甜甜圈
相关分类