asp.Net反射によるクラス定義の列挙


          ,         , :
namespace TestObj.Common.Enum
{
    public class EnumHelper
    {
        /// <summary>
        ///     
        /// </summary>
        public enum DocType
        {
            Doc = 1,
            XLS = 2,
            PPT = 3,
            PDF = 4,
            TXT = 5,
            HTML = 6,
               = 99
        }
    }
}

この場合、DocType文字列を介して列挙を遍歴したい場合は、反射を使用する必要があります.
//TestObj.Common      
Assembly assem = Assembly.Load("TestObj.Common");
Type type = assem.GetType("TestObj.Common.Enum.EnumHelper+"+"DocType");
foreach (int value in Enum.GetValues(type))
        {
            ListItem item = new ListItem(Enum.GetName(type, value), value.ToString());
        }

//肝心なのはここ
Type type = assem.GetType("TestObj.Common.Enum.EnumHelper + "+ "DocType");//ここは+号ではありません.(点)
これは、通常の列挙によって直接宣言されるネーミングスペースとの違いです.ネーミングスペースに直接宣言される場合は、次のように直接書きます.
assem.GetType("TestObj.Common.Enum.DocType");
これも今日の仕事で発見されたもので、何度もデバッグしてデータ分析を見て発見されました.ここに記録して、簡単に調べることができます!