Ответ 1
Как писал это, GetProperties()
теперь:
typeof(Object).GetTypeInfo().DeclaredProperties;
Я переношу проект библиотеки на стандарт .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"
}
}
}
}
Что мне не хватает?
Как писал это, GetProperties()
теперь:
typeof(Object).GetTypeInfo().DeclaredProperties;
Обновить: с помощью .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;