【问题标题】:Not able to use resources inside .cs file无法使用 .cs 文件中的资源
【发布时间】:2012-06-19 21:19:22
【问题描述】:

我有带有命名空间测试的项目 asp.net,并且我正在使用资源(文件 Resource.resx 和 Resource.en-GB.resx)。我在资源键 MY_TEXT 中有值。在文件 .aspx 我可以使用

<%# Resources.Resource.MY_TEXT %>

但是当我使用时(如文章http://msdn.microsoft.com/en-us/magazine/cc163566.aspx

myLabel.Text = Resource.MYTEXT; 

它没有找到它,我有构建错误。为什么?

最好的问候, 达格纳

【问题讨论】:

  • 什么是构建错误?
  • 当前上下文中不存在名称“资源”。它是红色下划线。
  • 现在我将 myLabel.Text = test.App_GlobalResources.Resource.MYTEXT; 设置为错误:“test.App_GlobalResources.Resource”不包含“MYTEXT”的定义
  • Resource 文件驻留在项目结构的哪个文件夹中?
  • 在 App_GlobalResources 中,当然是两个版本

标签: asp.net resources


【解决方案1】:

试试这样的:

myLabel.Text = Resources.Resource.MYTEXT;

让我知道它是否有效或编译器会给你什么样的错误。

你也可以按照你在问题中写的那样写,点击Resources将光标放在那里,点击Ctrl + .并选择一个要添加的命名空间。这应该会让 Visual Studio 自动检测到有效的 Resource 命名空间(或建议几个可用的命名空间)。

更新

这篇文章解释了如何在后面的代码中使用资源: http://msdn.microsoft.com/en-us/library/ms227982%28v=vs.85%29.aspx。我在 cmets 中提到了它,它对您有所帮助,所以我将其添加为答案的一部分。

【讨论】:

  • 我有错误:当前上下文中不存在名称“资源”
  • 看看这个:msdn.microsoft.com/en-us/library/ms227982%28v=vs.85%29.aspx。这篇文章似乎在我写它时暗示了它。请验证您是否可以解析Resources 命名空间。
  • 我认为它在快递中不起作用。我使用“解决”并提示我 System.Resources 和 System.Web.Resources。两者都有错误“名称空间'XXX'中不存在类型或名称空间名称'Resource'(您是否缺少程序集引用?)”
  • GetGlobalResourceObject() 正在工作,谢谢。奇怪的是 Resources.Resource.MYTEXT 不起作用,但我很高兴这里有不同的解决方案。
【解决方案2】:

您可以使用 aspx.cs 文件中的某些方法从资源中获取文本。 对于本地资源:

myLabel.Text = GetLocalResourceObject("MYTEXT").ToString();

对于全球资源:

myLabel.Text = GetGlobalResourceObject("MYTEXT").ToString();

欲了解更多信息,请访问:https://msdn.microsoft.com/en-us/library/ms227982%28v=vs.140%29.aspx

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-10
    • 2023-03-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多