【发布时间】:2016-01-09 04:18:30
【问题描述】:
Type t = obj.GetType();
t.IsEnum;
t.IsPrimitive;
t.IsGenericType
t.IsPublic;
t.IsNestedPublic
t.BaseType
t.IsValueType
UWP 中缺少上述所有属性。我现在如何检查这些类型?
【问题讨论】:
-
使用
Windows.Foundation.Metadata命名空间中的类和方法。例如。Windows.Foundation.Metadata.ApiInformation.IsMethodPresent. -
@RaymondChen 感谢您的指点,但我将如何检查上述属性?唯一可用的方法是检查方法、事件、属性和类型是否存在。
-
如果你有一个类型名但你不知道它是什么,我猜你可以调用
ApiInformation.IsEventPresent,然后是ApiInformation.IsMethodPresent,然后是ApiInformation.IsPropertyPresent,以此类推,直到返回true。不知道如何从 C# 获取IInspectable.GetRuntimeClassName。虽然一般来说,你的代码应该知道它有什么,而不是试图通过反射来确定。即使你有反思,你会怎么做? “是的,我知道这是一个枚举。”所以呢?你不知道枚举的值是什么意思。
标签: c# reflection uwp