1

ログインしている各ユーザーについて知り、CurrentCultureその文化に基づいてユーザーごとに設定を行うのに最適な場所はどこですか?

静的コンストラクターを使用して静的プロパティを割り当てることはできますか?

こんなことできるのか!!

 public class MetricSystemHelper
{
    private static bool _isMetric;
    static MetricSystemHelper()
    {
        RegionInfo region = new RegionInfo(System.Threading.Thread.CurrentThread.CurrentCulture.Name);

        if (true == region.IsMetric)
        {
            _isMetric = true;
        }
        else //  USA, Liberia, Myanmar(Only these countries doesn't use metric)
        {
            _isMetric = false;
        };
    }


    public static bool IsMetric
    {
        get
        {
             return _isMetric;
        }
    }
4

1 に答える 1

2

このThread.CurrentThread.CurrentCultureプロパティを使用して、現在の ASP.NET ユーザーのカルチャ情報を取得できます。<globalization>If you need to persist this information you can store it in the database when the user login. ただし、ASP.NET アプリケーション内では、このプロパティはweb.config ファイルの要素から設定されることに注意してください。

たとえば、次のようになります。

<globalization culture="auto" uiCulture="auto" />

autoはデフォルト値です。次に、ASP.NET はAccept-LanguageHTTP 要求ヘッダーを使用してこのプロパティを設定します。このプロパティは通常、リクエストごとにクライアント ブラウザによって送信されます。ただし、次の落とし穴に注意してください。同じユーザーが 2 つのブラウザー (Google Chrome と Mozilla Firefox など) を使用しており、それらのブラウザーで異なるカルチャ設定を構成している可能性があります。そのため、彼があなたの Web サイトにアクセスすると、同じユーザーに対して異なる結果が得られる可能性があります。

一方、ブラウザにとらわれない方法でユーザーの言語または文化の設定を管理したい場合は、ユーザーに自分の好みを伝える可能性を提供する必要があります。たとえば、これはユーザーが変更できる Web サイトの設定であり、データベースに保存することができます。

于 2013-01-02T11:43:40.493 に答える