【问题标题】:How to create resource manager in ASP.NET如何在 ASP.NET 中创建资源管理器
【发布时间】:2010-04-04 08:16:18
【问题描述】:

我想在我的页面上创建资源管理器并使用存储在我的资源文件中的一些数据。 (default.aspx.resx 和 default.aspx.en.resx)

代码如下所示:

System.Resources.ResourceManager myResourceManager = System.Resources.ResourceManager.CreateFileBasedResourceManager("resource", 
               Server.MapPath("App_LocalResources") + Path.DirectorySeparatorChar, null);

    if (User.Identity.IsAuthenticated)
    {
        Welcome.Text =  myResourceManager.GetString("LoggedInWelcomeText");
    }
    else
    {
        Welcome.Text = myResourceManager.GetString("LoggedOutWelcomeText");
    }

但是当我在本地服务器上编译并运行它时,我得到了这种类型的错误:

在磁盘上找不到适合指定区域性(或中性区域性)的任何资源。 baseName:资源位置信息:文件名:resource.resources 说明:执行当前 Web 请求期间发生未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。

异常详细信息:System.Resources.MissingManifestResourceException:在磁盘上找不到适合指定区域性(或中性区域性)的任何资源。 baseName:资源位置信息:文件名:resource.resources

来源错误:

第 89 行:否则 第 90 行:{ 第 91 行:Welcome.Text = myResourceManager.GetString("LoggedOutWelcomeText"); 第 92 行:} 第 93 行:

你能帮我解决这个问题吗?

【问题讨论】:

    标签: c# asp.net resourcemanager


    【解决方案1】:

    使用 GetLocalResourceObject(),它是 System.Web.Page 基础的一部分。 如果您希望访问全局资源,请使用 GetGlobalResourceObject()。

    保持简单;-)

    【讨论】:

      【解决方案2】:

      根据MSDN,CreateFileBasedResourceManager 需要编译的资源文件。通常,将 .resx 文件放在 App_LocalResources 中。此目录中是否有名为 resource.XXX.resources 的文件(其中 XXX 是当前区域性 ID)。

      我没有方便的 VS 以便在 ASP.NET 项目中检查这一点,但处理资源字符串的常用方法是转到项目属性、资源选项卡并在那里创建字符串。这会为您的资源生成一个强类型包装器,从而避免显式创建您自己的 ResourceManager。

      【讨论】:

      • 是的,我在 App_LocalResources 中有 default.aspx.en.resx 和 default.aspx.resx 并且还有名为“LoggedOutWelcomeText”的行
      • 好的,但名称不以“资源”开头,这就是您在调用 CreateFileBasedResourceManager 时所说的。
      猜你喜欢
      • 2012-06-12
      • 2023-04-09
      • 1970-01-01
      • 2011-09-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-14
      • 1970-01-01
      相关资源
      最近更新 更多