无法将类型为“System.Reflection.RuntimePropertyInfo”的对象强制转换为类型“Syst
本文关键字:类型 对象 Syst 转换 Reflection System RuntimePropertyInfo | 更新日期: 2023-09-27 18:19:03
我在使用以下代码时遇到问题。我正在遍历一个集合,以查看对象是否具有某种属性类型,如果是,请对其进行一些转换。
var props = obj.GetType().GetProperties();
foreach (var p in props)
{
if (p.PropertyType == typeof(System.Boolean))
{
var conv = Convert.ToByte(p);
}
}
当我尝试运行它时,我收到以下错误:
"无法将类型为'System.Reflection.RuntimePropertyInfo'的对象强制转换为类型'System.IConvertible'。
我假设您想获取属性的值并将其转换为字节,对吗?不是物业本身...所以:
var conv = Convert.ToByte(p.GetValue(obj, null));
把它当作byte
而不是bool
似乎很奇怪,诚然......我本以为:
var conv = (bool) p.GetValue(obj, null);
我个人也会使用:
if (p.PropertyType == typeof(bool))
而不是明确地说明System.Boolean
。