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

C# 通过C反射获取枚举witnin类的类型,c#,reflection,types,enums,C#,Reflection,Types,Enums,我有一个类似的枚举 namespace EnumTest { public class Enumeration { public Enumeration(); public enum Days { day = sunday, night = monday } } } 如何通过反射来获取连续几天的类型信息 Type type = assembly.GetT

我有一个类似的枚举

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

        public enum Days
        {
           day = sunday,
           night = monday
        }
    }
}
如何通过反射来获取连续几天的类型信息

Type type = assembly.GetType(Days);
Type Type=typeofDays将返回天数的类型信息。如果我有字符串s=Days,那么使用这个字符串s我需要获得Days的类型信息


我需要type=Days

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

Type type = typeof(Enumeration.Days);
请注意,枚举声明不会像您在问题中编写的那样工作。应该是这样的:

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

访问所需类型非常简单:

Type type = typeof(Enumeration.Days);
请注意,枚举声明不会像您在问题中编写的那样工作。应该是这样的:

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

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

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

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

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

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

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

我认为您需要枚举+天数作为名称。您需要的信息,显示预期名称此代码甚至不会编译-枚举值不能键入为字符串b,它们由分隔符分隔,而不是;。您应该从一些编译的代码开始,然后,当您遇到特定问题时,过来询问。我也不明白这里要实现的是什么-我认为你需要提供更多的上下文。关于你上次的编辑-你所说的“天的类型信息”是什么意思。枚举的类型通常为int,很少需要使用其他类型。正如我所说的,在您更改尝试用于枚举的类型(当前为字符串)之前,此代码甚至不会编译。我认为,您需要枚举+天数作为名称。您需要的信息,显示预期名称此代码甚至不会编译-枚举值不能键入为字符串b,它们由字符串b分隔,而不是;。您应该从一些编译的代码开始,然后,当您遇到特定问题时,过来询问。我也不明白这里要实现的是什么-我认为你需要提供更多的上下文。关于你上次的编辑-你所说的“天的类型信息”是什么意思。枚举的类型通常为int,很少需要使用其他类型。正如我所说的,在你改变你试图用于枚举的类型之前,这段代码甚至不会编译,它目前是字符串。事实上是正确的,但我怀疑这个问题有根本性的错误,即为什么类型如此有趣?@Adam,我的一个方法的参数是enum。GetDaysint dayCount,EnumTest.Enumeration.Days EnumTest.Enumeration.Days.day,我需要通过反射调用此方法。所以我要找的是Type@VinodKannan发布您正在编写的调用该方法的代码,并指出您遇到的问题。事实上是正确的,但我怀疑这个问题存在根本性的错误,即为什么类型如此有趣?@Adam,我的一个方法的参数为enum。GetDaysint dayCount,EnumTest.Enumeration.Days EnumTest.Enumeration.Days.day,我需要通过反射调用此方法。所以我要找的是Type@VinodKannan张贴您正在编写的代码以调用该方法,并指出您的问题所在。