在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
关于c#中枚举类型支持显示中文的扩展 需求 : 枚举类型在界面显示的时候可以显示相应的中文信息, 这样界面对用户友好 . 场景 : 在一些业务中涉及到审核功能的时候, 往往有这几个状态 :未送审 , 审核中 ,审核通过, 驳回 . 这个时候我们会定义一个枚举类型来描述 : AuditEnum.cs :
解决方法 : 给枚举项增加DescriptionAttribute后利用反射来获取中文信息. 步骤 : 1 . 在定义枚举AuditEnum的类中添加名称空间System.ComponentModel , 给每个枚举项加DescriptionAttribute , 示例代码如下 : using System.ComponentModel; public enum AuditEnum {
2 . 自定义一个类EnumService.cs , 增加静态方法GetDescription()根据传入的枚举值来读取Description信息 , 示例代码如下 : public class EnumService { public static string GetDescription(Enum obj) { string objName = obj.ToString(); Type t = obj.GetType(); FieldInfo fi = t.GetField(objName); DescriptionAttribute[] arrDesc = (DescriptionAttribute[])fi.GetCustomAttributes(typeof(DescriptionAttribute), false); return arrDesc[0].Description; } }
3 . 在输出枚举值的地方增加对EnumService.GetDescription()的调用 , 示例代码如下 : asp.net页面代码: <asp:Repeater ID="AuditRepeater" runat="server" OnItemDataBound="AuditRepeater_OnItemDataBound"> <ItemTemplate> //something ui code is here ....
全文完 .
以上代码运行于VS2010 , 有任何问题请在下方留言 , 喜欢就点推荐.
|
请发表评论