为ASP.NET页面/ usercontrol指定自定义资源文件

时间:2011-04-07 15:23:46

标签: asp.net localization resourcemanager resource-file

如果我有一个名为Default.aspx的页面,ASP.NET会自动使用App_LocalResources中名为Default.aspx.resx的资源文件来本地化页面中的服务器控件。

但出于某种原因,我需要选择另一个文件,比方说Default-Custom.aspx.resx。为了提供一些背景知识,我已经有了Default.aspx.resx,但有些用户需要显示不同的内容,我将把它放在Default-Custom.aspx.resx中。

是否可以在ASP.NET中选择用于TemplateControl的资源文件(缺少编写自定义ResourceProvider)?

1 个答案:

答案 0 :(得分:2)

看看这里:

ResourceManager.GetResourceFileName Method

  

此方法使用CultureInfo的名称   属性作为文件名的一部分   除了不变之外的所有文化   文化。此方法不会查找   集会的清单或触摸   磁盘,仅用于构造   什么是资源文件名(适合   传递给ResourceReader   构造函数)或清单资源   blob名称应为。

     

派生类可以覆盖它   寻找不同的方法   扩展名,例如“.ResX”或a   完全不同的命名方案   文件。

您可以尝试这样的事情:

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");
    }
}

有关此内容的更多信息:

Creating a custom Resource Provider

Under the Hood of BuildManager and Resource Handling