using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Reflection;
namespace Common
{
///
/// 枚举扩展方法
///
public static class EnumExtension
{
///
/// 返回枚举项的描述信息。
///
/// 要获取描述信息的枚举项。
/// 枚举想的描述信息。
public static string GetEnumDescription(this Enum value)
{
Type enumType = value.GetType();
// 获取枚举常数名称。
string name = Enum.GetName(enumType, value);
if (name != null)
{
// 获取枚举字段。
FieldInfo fieldInfo = enumType.GetField(name);
if (fieldInfo != null)
{
// 获取描述的属性。
DescriptionAttribute attr = Attribute.GetCustomAttribute(fieldInfo,
typeof(DescriptionAttribute), false) as DescriptionAttribute;
if (attr != null)
{
return attr.Description;
}
}
}
return null;
}
///
/// 获取彩种对应数据库表名称
///
/// 彩种枚举类型
///
public static string GetLotteryTableName(this Enum value)
{
if (value == null)
{
throw new ArgumentException("value");
}
string tableName = String.Empty;
var fieldInfo = value.GetType().GetField(value.ToString());
var attributes = (CustomAttribute.TableNameAttribute[])fieldInfo.GetCustomAttributes(typeof(CustomAttribute.TableNameAttribute), false);
if (attributes.Length > 0)
{
tableName = attributes[0].TableName;
}
return tableName;
}
}
}