Enum上的C#GetType(string)返回null

Ric*_*sen -1 c# enums gettype

我试图enum从enum名称的字符串中获取定义的类型- 例如:

namespace MySpace
{
    public class MyEnums
    { 
        public enum MyTestEnum { ... }
    }
}

Type enumType = GetType("MyEnums.MyTestEnum")
Run Code Online (Sandbox Code Playgroud)

但是,我尝试过的每种方法都会返回null.在研究这个问题时,人们已经指出了一些需要注意的事情,所以这是我尝试过的,没有成功:

  1. 使用包含命名空间的完全限定类名 - "MySpace.MyEnums.MyTestEnum"

  2. 将程序集名称添加到字符串,例如, "MySpace.MyEnums.MyTestEnum, MyAssembly"

  3. 迭代所有AppDomain.CurrentDomain.GetAssemblies()程序集并使用assembly.GetType("MySpace.MyEnums.MyTestEnum")

  4. 获取包含MyEnums该类的程序集对象并使用它:

    Assembly assembly = typeof(MyEnums).Assembly; 
    Type enumType = assembly.GetType("MySpace.MyEnums.MyTestEnum");
    
    Run Code Online (Sandbox Code Playgroud)

当然,我可以轻松获得其中的类型"MySpace.MyEnums",但不能获得其中的枚举.

有任何想法吗?

Ese*_*ser 6

我试图从枚举名称的字符串中获取枚举定义的类型

Type enumType = Type.GetType("MySpace.MyEnums+MyTestEnum");
Run Code Online (Sandbox Code Playgroud)

对于将来的问题,您可以用来typeof(MySpace.MyEnums.MyTestEnum).FullName; 了解如何生成/使用类型名称.