Любая альтернатива для IsSubclassOf или IsAssignableFrom в C # Metro-стиле

32

Есть ли альтернатива для IsSubclassOf или IsAssignableFrom в стиле Metro С#?

Я пытаюсь запустить этот код на Metro, но не могу найти альтернативу.

if ((ui.GetType() == type) || (ui.GetType().IsSubclassOf(type)))
{
    return true;
}
Теги:
reflection
windows-runtime
microsoft-metro

2 ответа

54

Многие из методов отражения можно найти в классе System.Reflection.TypeInfo.

Вы можете получить экземпляр TypeInfo для вашего Type с помощью метода расширения GetTypeInfo, предоставленного System.Reflection.IntrospectionExtensions:

using System.Reflection;

// ...

ui.GetType().GetTypeInfo().IsSubclassOf(type)
  • 0
    Многие из методов отражения недоступны в Metro-стиле Windows 8 .NET Framework. Это причина, по которой я искал альтернативу. но я думаю, что нет никакой альтернативы, так что, похоже, придется использовать «есть» или «как» с явным типом.
  • 0
    @MichaelSync: я не понимаю, почему вы говорите, что нет альтернативы. TypeInfo у вас не работает? Если нет, то почему?
Показать ещё 2 комментария
15

Вы можете использовать это:

using System.Reflection;

// ...

ui.GetTypeInfo().IsAssignableFrom(type.GetTypeInfo());

Это работает в Metro.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню