Ответ 1
Отражение немного изменилось в Metro: см. MSDN ( "Изменения отражения" - внизу).
В принципе, вам теперь нужно: type.GetTypeInfo()
.
Я пытаюсь подключить простое приложение к Windows 8 Metro (WinRT). Похоже, что некоторые очень простые методы отсутствуют. Один базовый пример: Type.GetProperty()
. Он доступен для профиля Windows Phone 7, Silverlight и .NET. Должен ли я что-то устанавливать (например, специальную библиотеку) или этот метод просто недоступен в профиле .NET metro?
UPDATE
ОК, спасибо. Теперь я использую this.GetType().GetTypeInfo().DeclaredProperties
.
using System.Reflection;
необходим для этого метода расширения GetTypeInfo()
.
Отражение немного изменилось в Metro: см. MSDN ( "Изменения отражения" - внизу).
В принципе, вам теперь нужно: type.GetTypeInfo()
.
В дополнение к ответу Николаса Батлера, я закончил использование таких расширений, чтобы поддерживать код повторно используемым на всех платформах.
#if NETFX_CORE // Workaround for .Net for Windows Store not having Type.GetProperty method
public static class GetPropertyHelper
{
public static PropertyInfo GetProperty(this Type type, string propertyName)
{
return type.GetTypeInfo().GetDeclaredProperty(propertyName);
}
}
#endif
Таким образом, Type.GetProperty()
реализуется для всех платформ.