4

Default.aspxというページがある場合、ASP.NETはApp_LocalResourcesのDefault.aspx.resxという名前のリソースファイルを使用して、ページ内のサーバーコントロールをローカライズします。

しかし、何らかの理由で、別のファイル、たとえばDefault-Custom.aspx.resxを選択する必要があります。背景を説明するために、私はすでにDefault.aspx.resxを持っていますが、一部のユーザーは異なるコンテンツを表示する必要があります。これをDefault-Custom.aspx.resxに入れます。

ASP.NETでTemplateControlに使用されるリソースファイルを選択することは可能ですか(カスタムResourceProviderを作成する以外)??

4

1 に答える 1

3

ここを見てください:

ResourceManager.GetResourceFileName メソッド

このメソッドは、インバリアント カルチャ以外のすべてのカルチャのファイル名の一部として CultureInfo の Name プロパティを使用します。このメソッドは、アセンブリのマニフェストを調べたり、ディスクにアクセスしたりせず、リソース ファイル名 (ResourceReader コンストラクターに渡すのに適しています) またはマニフェスト リソース BLOB 名を構築するためにのみ使用されます。

派生クラスは、このメソッドをオーバーライドして、".ResX" などの別の拡張子を検索したり、ファイルに名前を付けるためのまったく別のスキームを検索したりできます。

次のようなことを試すことができます:

public class ResxResourceManager : ResourceManager
{  
    protected override string GetResourceFileName(
         System.Globalization.CultureInfo culture)
    {
        return base.GetResourceFileName(culture);       
    }

    public string GetResxFileName(System.Globalization.CultureInfo culture)
    {
        return GetResourceFileName(culture).Replace(".resources", ".resx");
    }
}

詳細については、次を参照してください。

カスタム リソース プロバイダーの作成

BuildManager とリソース処理の内部

于 2011-05-04T21:30:24.623 に答える