Тип не содержит определения для 'GetProperties'

Я переношу проект библиотеки на стандарт .net, и я получаю следующую ошибку компиляции, когда я пытаюсь использовать API System.Reflection для вызова Type:GetProperties():

Тип не содержит определения для 'GetProperties'

Вот мой project.json:

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

Что мне не хватает?

Ответ 1

Как писал это, GetProperties() теперь:

typeof(Object).GetTypeInfo().DeclaredProperties;

Ответ 2

Обновить: с помощью .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 из Type:

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

Кроме того, не забудьте использовать using System.Reflection;