我正在尝试使用反射来列出一个 Visual Studio 解决方案内的各个项目中的一些类的公共成员和方法。我尝试访问的所有类都是 C# 的,并且它们都是从 C# 类访问的。我用来进行这些调用的代码如下:
public void PopulateEventParamTree()
{
System.Console.WriteLine(source.GetType().ToString());
Type type = (Type)source.getEventType();
System.Console.WriteLine(type.ToString());
foreach (MemberInfo member in type.GetMembers())
{
System.Console.WriteLine("\t" + member.ToString());
}
}
大多数输出工作正常(即 Int32、Double、System.String)。我的问题是,当我尝试列出枚举时,控制台的输出如下所示:
Namespace.Subspace.event+EVENT_TYPE
我希望能够看到枚举的所有内部值,而不仅仅是它的名称。例如,枚举
public enum EVENT_TYPE
{
EVENTDOWN,
EVENTMOVE,
EVENTUP,
}
应该输出类似这样的内容
Namespace.Subspace.class+EVENT_TYPE EVENTDOWN
Namespace.Subspace.class+EVENT_TYPE EVENTMOVE
Namespace.Subspace.class+EVENT_TYPE EVENTUP
任何人可以提供的任何帮助将不胜感激。我已经用尽了迄今为止所能找到的一切,但如果能有一个新的视角那就太好了。
Thanks
Use System.Enum.GetNames(typeof(EVENT_TYPE)) http://msdn.microsoft.com/library/system.enum.getnames.aspx.
您可能必须处理这种特殊情况(不使用枚举的反射)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)