我擁有財產性本地化的自定義枚舉屬性
public MyEnumType MyType {get; set;}
其中MyEnumType是
public enum MyEnumType
{
One = 1,
Two = 2,
Three = 3,
}
是有可能本地化的MyType財產無MyEnumType
我擁有財產性本地化的自定義枚舉屬性
public MyEnumType MyType {get; set;}
其中MyEnumType是
public enum MyEnumType
{
One = 1,
Two = 2,
Three = 3,
}
是有可能本地化的MyType財產無MyEnumType
修改它不是。這並不意味着。這不是輸出文本,它們在程序名稱中。
這不是本地化(翻譯輸出),你會做的是翻譯源代碼中的類名稱。
本地化您可以使用通常的本地化框架進行的輸出。取決於輸出技術。
您可以使用擴展方法創建自己的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());
}
}
}
我在使用mvc @ Html.DropDownListFor(x => x.MyType.ToLocalizedString(),...時出錯,錯誤消息:模板只能用於字段訪問,屬性訪問,單維數組索引,或單參數自定義索引器表達式。 – user1765862
如果你需要「本地化」「的ToString」的轉換,你可以去一個靜態類
public static class Localization
{
public static string ToCultureString(this MyEnumType type)
{
return ResourceManager.GetString(type.ToString(), Culture);
}
}
的靜態方法!請照顧:
RCE文件的文化需要,你在哪裏使用您的枚舉定義鍵的資源文件
進一步您可以使用下面的代碼:
var asString = MyObj.MyType.ToCultureString();
你是什麼意思的「本地化」? – Tigran
什麼是'MoneyTransactionType'?並本地化什麼?哪裏?你如何使用它?在哪個控件中? Win/Wpf/Web? –
您可以使用['DisplayAttribute'](http://msdn.microsoft.com/zh-cn/library/system.componentmodel.dataannotations.displayattribute.aspx)並編寫自定義代碼來訪問它們,也可以編寫自定義代碼根據枚舉值的名稱進行查找。 – Stijn