我正在使用基于反射的对象翻译器。
它基本上循环遍历对象的属性,并将值分配给翻译对象上具有相同名称/类型的属性。
对象A.Name =“乔”
翻译为:
ObjectB.Name =“乔”
我需要提出一个特殊情况,当属性是自定义类时,例如:
对象A.地址
我希望我可以使用 PropertyType 的 IsClass 标志检测此类属性
propInfo.PropertyType.IsClass
但此标志似乎也为字符串属性返回 true。
有没有另一种方法可以验证该属性是否属于非本机类型?
我假设您想确定目标类型是否不是基元。你也许可以使用TypeCode
为此,例如:
public bool IsNotCoreType(Type type)
{
return (type != typeof(object) && Type.GetTypeCode(type) == TypeCode.Object);
}
任何非原始类型都应该返回TypeCode.Object
作为结果Type.GetTypeCode
,所以我们可以检查我们是否得到了它并且类型本身不是System.Object
.
也许这会有帮助?
UPDATE:我已将该方法重命名为不是核心类型涵盖原语和非原语,例如String
, DateTime
等等(见下面的评论)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)