我正在尝试从enum
名称的字符串中获取enum
定义的类型 - 例如:
namespace MySpace
{
public class MyEnums
{
public enum MyTestEnum { ... }
}
}
Type enumType = GetType("MyEnums.MyTestEnum")
但是,我尝试过的每种方法都会返回null
。在研究这个问题时,人们已经指出了一些需要注意的事情,所以这是我尝试过的,没有成功:
使用包含命名空间的完全限定类名 - "MySpace.MyEnums.MyTestEnum"
将程序集名称添加到字符串中,例如"MySpace.MyEnums.MyTestEnum, MyAssembly"
迭代所有AppDomain.CurrentDomain.GetAssemblies()
程序集并使用assembly.GetType("MySpace.MyEnums.MyTestEnum")
获取包含MyEnums
类的程序集对象并使用:
Assembly assembly = typeof(MyEnums).Assembly;
Type enumType = assembly.GetType("MySpace.MyEnums.MyTestEnum");
我当然可以很容易地获得"MySpace.MyEnums"
的类型,但不能获得其中的枚举。
有什么想法吗?
答案 0 :(得分:6)
我正在尝试从枚举名称
的字符串中获取枚举定义的类型
Type enumType = Type.GetType("MySpace.MyEnums+MyTestEnum");
对于未来的问题,您可以使用typeof(MySpace.MyEnums.MyTestEnum).FullName;
了解如何生成/使用类型名称。