我在Properties / String /中有两个Reources(cs-CZ.resx; default.resx)
我这样设置:
internal static System.Resources.ResourceManager strings;
public static void SetLanguage(string culture)
{
if (culture == "cs-CZ")
{
Thread.CurrentThread.CurrentCulture = new CultureInfo("cs-CZ");
strings = Properties.Strings.cs_CZ.ResourceManager;
}
else
{
Thread.CurrentThread.CurrentCulture = new CultureInfo("en-GB");
strings = Properties.Strings._default.ResourceManager;
}
}
在Form构造函数中:
SetLanguage("cs-CZ");
然后
public static string Translate(string name)
{
return strings.GetString(name);
}
mainStrip.Text = Translate("mainStrip");
但是我收到了TypeInitializationException。怎么了?
答案 0 :(得分:1)
TypeInitializationException主要是使用私有静态构造函数引起的。调用SetLanguage
方法将调用此构造函数并抛出此异常。因此,在此方法之前为此创建新类或调用构造函数。
FXP。这里有很好的例子:http://www.dotnetperls.com/typeinitializationexception