代码之家  ›  专栏  ›  技术社区  ›  e-holder

对于C#资源,为什么属性是未定义的?

  •  2
  • e-holder  · 技术社区  · 17 年前

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

    产生错误的代码是:

    string s = MyClass2.Properties.Resources.TestString2;
    

    1. 这两个项目都是VS2008中的普通“类库C#”项目。
    2. 我通过右键单击创建了资源字符串->属性,然后选择“资源”选项卡。然后我在其中一个输入了“TestString”,在另一个输入了“TestString2”。
    3. 对于有效的项目,如果我键入MyClass。-IDEIntelliSense告诉我“属性”是一个可用的成员(但这是它显示给我的唯一成员)。对于不起作用的项目,可用的成员是“Equals”和“ReferenceEquals”(它不给我“属性”)。这似乎是事情不同的最大线索。
    4. 我已经对两个项目(Resources.resx、Resources.Designer.cs、MyProj.csproj)之间的相应文件执行了“差异”。除了我所期望的之外,没有什么看起来不同(类名和字符串名不同)。
    5. 我在谷歌上搜索到了它。基于这种奇怪的感觉,毫无疑问我做了一些疯狂愚蠢的事情(参见 https://stackoverflow.com/questions/58640/great-programming-quotes/756768#756768
    1 回复  |  直到 9 年前
        1
  •  6
  •   Matthew Scharley    17 年前

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