gpt4 book ai didi

c# - 对于C#资源,为什么Properties未定义?

转载 作者:行者123 更新时间:2023-12-02 15:04:40 25 4
gpt4 key购买 nike

当我尝试访问 C# 项目资源之一中的字符串属性时,出现以下错误:

'ORG.PRJ.MOD.MyClass2' does not contain a definition for 'Properties'

产生错误的代码是:

string s = MyClass2.Properties.Resources.TestString2;

真正奇怪的是,我的解决方案中的另一个项目(使用 MyClass 和 TestString)具有完全相同的设置,不会产生错误并且工作得像冠军一样。这是背景和我尝试过的所有事情。

  1. 两者都是 VS2008 中的普通“C# 类库”项目。
  2. 我通过右键单击解决方案树中每个项目的“属性”创建了资源字符串,然后选择“资源”选项卡。然后我在其中一个中输入了“TestString”,在另一个中输入了“TestString2”。
  3. 对于有效的项目,如果我输入 MyClass。 - IDE IntelliSense 告诉我“Properties”是一个可用成员(但这是它向我显示的唯一成员)。对于不起作用的项目,可用的成员是“Equals”和“ReferenceEquals”(它不给我“属性”)。这似乎是表明有些东西不同的最大线索。
  4. 以为我的项目文件已损坏,我从头开始重新创建了这两个项目。我删除了所有 bin、obj 和 Properties 文件夹,删除了所有 Resources.resx 和 Resources.Designer.cs 文件,删除了所有 .csproj、.csproj.user、.sln 和 .suo 文件。对于两个项目。然后我再次启动VS2008并使用File->New->“Project From Existing Code...”创建新项目。然后,我以完全相同的方式为这两个项目添加资源(按照上面的步骤 2)。结果相同。
  5. 我已对两个项目(Resources.resx、Resources.Designer.cs、MyProj.csproj)之间的相应文件执行了“比较”。除了我的预期之外,没有什么不同(类名和字符串名之间有所不同)。
  6. 我已经用谷歌搜索死了。基于这种感觉的奇怪程度,毫无疑问我做了一些极其愚蠢的事情(参见https://stackoverflow.com/questions/58640/great-programming-quotes/756768#756768)。

最佳答案

Properties 静态类可通过项目的默认命名空间进行访问。现在,考虑到它是一个类库,可能Class2(或者可能存在命名冲突,即通过使用Class2.Class2),但有些东西告诉我这是你的库中的一个类,而不是命名空间(这会产生你描述的错误)。

关于c# - 对于C#资源,为什么Properties未定义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1495231/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com