c# – 为枚举提供本地化的最佳方式是什么?
我正在编写一个使用很多枚举的多语言应用程序,我希望实现以下目标:
>将枚举名称显示为本地化字符串 我热衷于使用资源文件属性来装饰枚举,以便可以从运行时类型信息中获取本地化字符串.在使用静态成员而不是枚举声明静态类之前,我一直沿着这条路走下去,但是这解决了很多问题. 某种基于TypeDescriptor的机制是否合适?甚至可能吗? 此外 – 如何以干净,通用,可重复使用的方式完成目标#3? 自从提出这个问题以来,我已经完成了需要可本地化的枚举显示的开源库.我选择了实现TypeConverters的技术.完整资源来源于http://measures.codeplex.com/ 解决方法
为你的枚举写
TypeConvertor怎么样?
>定义一些自定义属性,该属性将标识枚举值的资源字符串.>编写TypeConvertor,它将查找此属性以获取资源ID,然后将该值转换为字符串. (您可以使用相同的辅助类,但使用TypeConvertor和TypeConvertorAttribute允许更透明地使用它).>您可以编写一个将执行反向转换的通用类/方法(从字符串到枚举).该方法将类似于Parse< T>(字符串值),其中T将是枚举类型.该实现将使用反射构建(按需)给定枚举类型T的查找字典以查找您的自定义属性. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |