早上好。 我有需要创建一个小帮手类,使用泛型,但是我的泛型知识是非常低的。 所以这里是我需要的。 我已经在C#中定义了枚举,以具有描述属性。例如在C#中使用泛型和枚举来创建属性列表
public enum EnumLineItemErrorCode
{
[Description("None")]
None = 0,
[Description("helpful Desc")]
MissnigA= 1,
[Description("another desc")]
MissingB = 2
}
我也创建了助手函数得到他描述了枚举像
public static string GetEnumDescription(Enum value)
{
FieldInfo fi = value.GetType().GetField(value.ToString());
DescriptionAttribute[] attributes =
(DescriptionAttribute[])fi.GetCustomAttributes(typeof(DescriptionAttribute), false);
return attributes.Length > 0 ? attributes[0].Description : value.ToString();
}
现在,如果我需要说明我可以调用类似如下
EnumerationsHelper.GetEnumDescription(EnumLineItemErrorCode.MissnigA);
方法
但是,当我们想要绑定到数据源时,我目前对枚举上的每个值执行以下操作。
dropdownList.Add(new ListItem(EnumerationsHelper.GetEnumDescription(EnumLineItemErrorCode.MissnigA), EnumLineItemErrorCode.MissnigA.ToString()));
但这种方法不灵活的枚举尺寸增大,也因为它不会自动添加一个值列表,如果我只是把它添加到枚举。
所以我的问题是。
可以创建一个帮助器方法,它将返回一个描述,值, 列表,其中描述是枚举描述,值是枚举内部值。 例如对码,我已经将用作
object t EnumerationsHelper.GetDescriptionAndValuesAslist(EnumLineItemErrorCode);
和对象t是与值<“无”,无“>,<‘MissnigA’,”有帮助说明“>,<”结构MissingB”, “另一种递减”>
预先感谢您
该解决方案提供了实际所需的输出,非常感谢,另一个是良好的起始位置,但这是一个完整的包装 –