c# GetType(string)在Enum上返回null
本文关键字:Enum 返回 null GetType string | 更新日期: 2023-09-27 18:12:02
我试图从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"
的类型,但不能得到其中的枚举。
任何想法?
我试图从枚举名称
的字符串中获得枚举定义的类型
Type enumType = Type.GetType("MySpace.MyEnums+MyTestEnum");
对于将来的问题,您可以使用typeof(MySpace.MyEnums.MyTestEnum).FullName;
要了解类型名是如何生成/使用的。
找到了-需要对MyEnums类类型使用GetNestedType()方法