通过C#反射获取Enum witnin类的类型

本文关键字:类型 witnin Enum 反射 获取 通过 | 更新日期: 2023-09-27 18:25:27

我有一个类似枚举的

namespace EnumTest
    {
    public class Enumeration
    {
        public Enumeration();
        public enum Days
        {
           day = sunday,
           night = monday
        }
    }
}

如何通过反思获得连续几天的类型信息。

Type type = assembly.GetType(Days);

Type type = typeof(Days)会返回Days的Type信息。如果我有String s = "Days",使用这个字符串s,我需要获得Days的类型信息。

我需要类型=天

通过C#反射获取Enum witnin类的类型

我不确定我是否理解你。如果字符串对象中有类型名称,并且想要获得类型对象,则需要编写整个类型名称
由于您的枚举是内部类型,因此完整的类型名称为"EnumTest.Enumeration.DaysEnumTest.Enumeration+Days"。

要获得类型对象,您可以调用

Type type = assembly.GetType("EnumTest.Enumeration.DaysEnumTest.Enumeration+Days");

访问所需类型非常简单:

Type type = typeof(Enumeration.Days);

请注意,枚举声明不会像您在问题中所写的那样起作用。应该是这样的:

public enum Days    
    {    
       Monday,
       Tuesday,
       ...
    }