通过C#反射获取类中的枚举

时间:2012-02-23 07:28:41

标签: c# reflection types enums

我有一个像Enum一样的

namespace EnumTest
    {
    public class Enumeration
    {
        public Enumeration();

        public enum Days
        {
           day = sunday,
           night = monday
        }
    }
}

如何通过反思获取类型信息。

Type type = assembly.GetType(Days);

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

我需要type = Days

2 个答案:

答案 0 :(得分:5)

我不确定我是否理解你。如果在字符串对象中有类型名称并且想要获取类型对象,则需要编写整个类型名称 因为你的枚举是一个内部类型,所以完整的类型名称是“EnumTest.Enumeration.DaysEnumTest.Enumeration + Days”。

要获取可以调用的类型对象

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

答案 1 :(得分:4)

要访问您需要的类型非常简单:

Type type = typeof(Enumeration.Days);

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

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