【发布时间】:2012-12-08 21:16:15
【问题描述】:
我在 Properties/String/ (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;
}
}
在表单构造函数中:
SetLanguage("cs-CZ");
然后
public static string Translate(string name)
{
return strings.GetString(name);
}
mainStrip.Text = Translate("mainStrip");
但是我得到了 TypeInitializationException。怎么了?
【问题讨论】:
-
您可以发布异常详细信息吗?
-
我想要,但它只显示。该 TypeInitializationException 发生在 SetLanguage 方法中。我试过把这个
return Properties.Strings.cs_CZ.ResourceManager.GetString(name);放到翻译方法中。并注释掉 setlanguage 方法。现在可以了。所以问题出在 SetLanguage 方法中。 -
查看 InnerException 找出问题所在。
标签: c# winforms .net-3.5 multilingual typeinitializeexception