我正在将库项目迁移到.net标准,当我尝试使用System.Reflection
API来调用Type:GetProperties()
时,我收到以下编译错误:
类型不包含' GetProperties'
的定义
这是我的project.json
:
{
"version": "1.0.0-*",
"buildOptions": {
"debugType": "portable"
},
"dependencies": {},
"frameworks": {
"netstandard1.6": {
"dependencies": {
"NETStandard.Library": "1.6.0"
}
}
}
}
我错过了什么?
答案 0 :(得分:12)
更新:使用.NET COre 2.0版本,System.Type
会回来,因此两个选项都可用:
typeof(Object).GetType().GetProperties()
typeof(Object).GetTypeInfo().GetProperties()
这个需要添加using System.Reflection;
typeof(Object).GetTypeInfo().DeclaredProperties
请注意,此属性返回IEnumerable<PropertyInfo>
,而不是前两种方法PropertyInfo[]
。
System.Type
上与反思相关的大多数成员现在都在System.Reflection.TypeInfo
。
首先致电GetTypeInfo
以获取TypeInfo
的{{1}}个实例:
Type
另外,请勿忘记使用typeof(Object).GetTypeInfo().GetProperties();
答案 1 :(得分:10)
截至撰写本文时,GetProperties()
现在是:
typeof(Object).GetTypeInfo().DeclaredProperties;