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");
これも今日の仕事で発見されたもので、何度もデバッグしてデータ分析を見て発見されました.ここに記録して、簡単に調べることができます!