Как использовать отражение для получения статического свойства класса в WinRT

Я могу получить нестатическое свойство без проблем (Как получить свойства класса в WinRT) или статическое свойство в c# .net, но не могу понять, как получить статическое свойство в C3 winrt.

Это насколько я понял. Кто-нибудь может помочь?

            Type type = typeof(ToastNotificationManager);
            var typeInfo = type.GetTypeInfo();
            var historyProperty = type.GetRuntimeProperty("History");
            object history = historyProperty.get
            property.SetValue(obj, value);

Я пытаюсь подумать и вызвать ToastNotificationManager.History.Remove(), который поддерживается только на телефоне (ToastNotificationManager.History)


person swinefeaster    schedule 31.10.2014    source источник


Ответы (1)


Это отлично работает:

PropertyInfo propertyInfo =
    typeof(ToastNotificationManager).GetRuntimeProperty("History");

propertyInfo.SetValue(null, value);

Предполагая, конечно, что тип ToastNotificationManager имеет свойство с именем History. :)

Обратите внимание, что при доступе к статическим свойствам вы просто передаете null в качестве ссылки на объект. Поскольку нет экземпляра, связанного со статическим членом, очевидно, вам не нужно передавать ссылку на него.

person Peter Duniho    schedule 31.10.2014