枚举
using System.ComponentModel;
namespace Common.BaseEnum
{
/// <summary>
/// 测试枚举
/// </summary>
public enum TestEnum
{
/// <summary>
/// 测试1
/// </summary>
[Description("测试1")]
Test1 = 1,
/// <summary>
/// 测试2
/// </summary>
[Description("测试2")]
Test2 = 2,
/// <summary>
/// 测试1
/// </summary>
[Description("测试3")]
Test3 = 3,
}
}
反射
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Reflection;
namespace EnumTest
{
class Program
{
static void Main(string[] args)
{
//加载目标程序集Common.dll
string CommonAssembly =
"Common, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null";
Assembly assembly = Assembly.Load(CommonAssembly);
List<KeyValuePair<int, string>> StatusEnumList =
new List<KeyValuePair<int, string>>();
//反射枚举(namespace.enum)
Type type = assembly.GetType("Common.BaseEnum.TestEnum");
foreach (var item in Enum.GetValues(type))
{
var attrs = item.GetType().GetField(item.ToString())
.GetCustomAttributes(typeof(DescriptionAttribute), true);
string desc = string.Empty;
if (attrs != null && attrs.Length > 0)
{
DescriptionAttribute descAttr = attrs[0] as DescriptionAttribute;
desc = descAttr.Description;
}
KeyValuePair<int, string> keyValuePair =
new KeyValuePair<int, string>(Convert.ToInt32(item), desc);
StatusEnumList.Add(keyValuePair);
}
}
}
}