c# – 为枚举提供本地化的最佳方式是什么?

前端之家收集整理的这篇文章主要介绍了c# – 为枚举提供本地化的最佳方式是什么?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在编写一个使用很多枚举的多语言应用程序,我希望实现以下目标:

>将枚举名称显示为本地化字符串
>使用属性提供本地化描述
>启用对枚举的语言敏感解析回到int值

我热衷于使用资源文件属性来装饰枚举,以便可以从运行时类型信息中获取本地化字符串.在使用静态成员而不是枚举声明静态类之前,我一直沿着这条路走下去,但是这解决了很多问题.

某种基于TypeDescriptor的机制是否合适?甚至可能吗?

此外 – 如何以干净,通用,可重复使用的方式完成目标#3?

自从提出这个问题以来,我已经完成了需要可本地化的枚举显示的开源库.我选择了实现TypeConverters的技术.完整资源来源于http://measures.codeplex.com/

解决方法

为你的枚举写 TypeConvertor怎么样?

>定义一些自定义属性,该属性将标识枚举值的资源字符串.>编写TypeConvertor,它将查找此属性获取资源ID,然后将该值转换为字符串. (您可以使用相同的辅助类,但使用TypeConvertor和TypeConvertorAttribute允许更透明地使用它).>您可以编写一个将执行反向转换的通用类/方法(从字符串到枚举).该方法将类似于Parse< T>(字符串值),其中T将是枚举类型.该实现将使用反射构建(按需)给定枚举类型T的查找字典以查找您的自定义属性.

猜你在找的C#相关文章