获取.net枚举的Windows本地化
本文关键字:Windows 本地化 枚举 net 获取 | 更新日期: 2023-09-27 18:05:23
是否可以为。net枚举获得Windows本地化?例如,我想获得system . io . ports .奇偶校验值的翻译。
这里是System.IO.Ports.Parity:
public enum Parity
{
None = 0,
Odd = 1,
Even = 2,
Mark = 3,
Space = 4,
}
窗口显示他们是{"Чет"、"Нечет"、"Нет"、"Маркер"、"Пробел"}在com端口属性窗口(我使用俄罗斯版本的Windows 8)。
问题是,我不想硬编码这些"翻译"。我想根据当前文化自动获取。
不,枚举没有本地化。
枚举的全部意义在于您可以使用描述性名称而不是值,因此如果您将值设置为Mark
而不是3
,则更容易编写代码
那么当你比较数值时,你不必记住3
代表Mark
您不应该向用户显示EnumValue.ToString()
,但是您可以创建自己的名为strings
的资源文件,添加一个名为Mark
的资源,并使用适当的值,然后像这样查找值:
ResourceManager rm = strings.ResourceManager;
Debug.WriteLine(rm.GetString(System.IO.Ports.Parity.Mark.ToString()));
参见如何在c#中使用本地化和从字符串资源中动态获取字符串了解更多信息。