我有财产
public MyEnumType MyType {get; set;}
我的枚举类型是
public enum MyEnumType
{
One = 1,
Two = 2,
Three = 3,
}
是否可以在不修改枚举类型
的情况下本地化MyType属性答案 0 :(得分:0)
不是。它并不意味着。那不是输出文本,它们是程序名称。
这不是本地化(输出的翻译),你要做的是在源代码中翻译类名。
使用通常的本地化框架可以对输出进行本地化。取决于输出技术。
答案 1 :(得分:0)
您可以使用扩展方法创建自己的ToString(),而无需更改枚举本身。
using System;
namespace ConsoleApplication1 {
public enum MyEnumType {
One = 1,
Two = 2,
Three = 3,
}
public static class Extension {
public static string ToLocalizedString(this MyEnumType type) {
// check System.Threading.Thread.CurrentThread.CurrentCulture
// if you need current culture context
switch (type) {
case MyEnumType.One:
return "Ein";
case MyEnumType.Two:
return "Zwei";
case MyEnumType.Three:
return "Drei";
default:
throw new NotImplementedException();
}
}
}
class Program {
static void Main(string[] args) {
var foo = MyEnumType.One;
Console.Out.WriteLine(foo.ToLocalizedString());
}
}
}
答案 2 :(得分:0)
如果你需要“本地化”“ToString”转换,你可以选择静态类的静态方法
public static class Localization
{
public static string ToCultureString(this MyEnumType type)
{
return ResourceManager.GetString(type.ToString(), Culture);
}
}
!请注意:
您需要的文化的rce文件,您使用枚举中定义的键
您还可以使用以下代码:
var asString = MyObj.MyType.ToCultureString();