1

web.config でグローバリゼーションを設定した MVC アプリがあります。Web アプリではすべて問題ありません。しかし、私のテスト プロジェクトでは、サービス レイヤーで問題が発生しています。dd/MM/yyyy の形式で生年月日を尋ねています。これを文字列としてサービス層に渡します。正しくフォーマットされていることを確認するための RegEx がありますが、正しくフォーマットされていて、それを日付に変換しようとすると、エラーが発生します。これは、CultureInfo が en.US に設定されているためです。en.GB にしたいのです。初期化テストメソッドの1つで次のことを試みましたが、役に立ちませんでした:

string sCulture = ConfigurationSettings.AppSettings["CultureToUse"];  //returns "en.GB"
        System.Threading.Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo(sCulture);
        CultureInfo.CreateSpecificCulture(sCulture);

テスト プロジェクトで CultureInfo を設定する方法はありますか?

4

2 に答える 2

1
ConfigurationSettings.AppSettings["CultureToUse"]

「en.GB」ではなく「en-GB」を返す必要があります。これがお役に立てば幸いです。

于 2010-01-29T22:48:25.583 に答える
1

データの形式を強制し、数値のみであるため、ユーザー定義の設定に依存するべきではなく、DateTime.ParseExact(dateString, "dd/MM/yyyy", CultureInfo.InvariantCulture) を使用することをお勧めします。

CurrentUICulture プロパティは、アプリ用に読み込まれるリソースを制御します。CurrentCulture は、解析/フォーマットを制御するために設定/取得するものです。

于 2010-01-30T00:28:48.917 に答える