类型不包含' GetProperties'的定义

时间:2017-02-03 17:28:13

标签: .net-core .net-standard

我正在将库项目迁移到.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"
      }
    }
  }
}

我错过了什么?

2 个答案:

答案 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;