1

Properties/String/ (cs-CZ.resx;default.resx) に 2 つのリソースがあります。

私はこのように設定しました:

    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 を取得しています。どうしたの?

4

1 に答える 1

1

TypeInitializationExceptionは、主にプライベート静的コンストラクターを使用して発生します。メソッドを呼び出すSetLanguageと、このコンストラクターが呼び出され、この例外がスローされます。したがって、このメソッドの新しいクラスを作成するか、このメソッドの前にコンストラクターを呼び出します。

Fxp。ここに良い例があります:http://www.dotnetperls.com/typeinitializationexception

于 2012-12-09T12:15:07.613 に答える