Type does not contain a definition for 'GetPro

2020-08-09 09:12发布

I am migrating a library project to a .net standard and I am getting the following compilation error when I try to use the System.Reflection API to call Type:GetProperties():

Type does not contain a definition for 'GetProperties'

Here it is my project.json:

{
  "version": "1.0.0-*",
  "buildOptions": {
    "debugType": "portable"
  },
  "dependencies": {},
  "frameworks": {
    "netstandard1.6": {
      "dependencies": {
        "NETStandard.Library": "1.6.0"
      }
    }
  }
}

What am I missing?

2条回答
够拽才男人
2楼-- · 2020-08-09 09:26

As of writing this, GetProperties() is now:

typeof(Object).GetTypeInfo().DeclaredProperties;

查看更多
狗以群分
3楼-- · 2020-08-09 09:35

Update: with .NET COre 2.0 release the System.Type come back and so both options are available:

  • typeof(Object).GetType().GetProperties()
  • typeof(Object).GetTypeInfo().GetProperties()

    This one requires adding using System.Reflection;

  • typeof(Object).GetTypeInfo().DeclaredProperties

    Notice that this property returns IEnumerable<PropertyInfo>, not PropertyInfo[] as previous two methods.


Most reflection-related members on System.Type are now on System.Reflection.TypeInfo.

First call GetTypeInfo to get a TypeInfo instance from a Type:

typeof(Object).GetTypeInfo().GetProperties();

Also, don't forget to use using System.Reflection;

查看更多
登录 后发表回答