如何在自定义服务器控件asp中使用.resx和.resource文件?

2024-04-30

我正在编写自己的服务器端控件,并且使用存储在.resx文件。在控制台应用程序中,此代码运行良好:

     ResXResourceReader rsxr = new ResXResourceReader("Resource1.resx");
        
     foreach (DictionaryEntry d in rsxr)
     {
        Console.WriteLine(d.Key.ToString() + ":\t" + d.Value.ToString());
     }

     rsxr.Close();

but here

      protected override void RenderContents(HtmlTextWriter output)
    {
        ResXResourceReader rsxr = new ResXResourceReader("Resource1.resx");
  
        base.RenderContents(output);

        foreach (DictionaryEntry d in rsxr)
        {
            output.Write(d.Key.ToString());
        }
        
    }

我收到此错误:

找不到文件“C:\Program Files\Common Files\Microsoft Shared\DevServer\10.0\Resource1.resx”

我尝试使用 ResourceManager,但它需要.resource文件。我无法访问resgen工具(命令提示符不理解resgen命令)并安装它(在尝试期间发生了一些错误)。

我的问题是:

  1. 为什么我无法阅读.resx?

  2. 如何安装resgen工具正确吗?

thanks.


将资源文件存储在下面被认为是一个好习惯App_GlobalResources应用程序根目录或中的文件夹App_LocalResources与您的用户控制文件同名。因此,例如用户用户控件是本地资源文件夹中的 uc.ascx 文件应该是 uc.ascx.resx。这样就更容易维护,并且 ASP.NET 会自动检测到它。

现在你的答案:

第一个问题: Use Server.MapPath("~/")直接指向您的 web.config 所在的物理位置。如果你想使用 Controls 文件夹中的资源文件,你必须编写Server.MapPath("~/Controls/Resource1.resx")获取路径。

Not sure你想用 resgen 工具做什么?当您编译应用程序时,资源文件也会被编译。选择您的资源文件并单击F4,它将显示您的构建操作,在构建操作中选择资源,您的资源文件将包含在程序集中。

您可以查看这篇文章以获取更多信息:如何在asp.net网站中使用图片资源? https://stackoverflow.com/questions/244807/how-to-use-image-resource-in-asp-net-website

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在自定义服务器控件asp中使用.resx和.resource文件? 的相关文章

随机推荐