【问题标题】:c# namespace clashc# 命名空间冲突
【发布时间】:2012-12-18 04:25:14
【问题描述】:

我有一个 c# 项目,其中默认命名空间是 Project.App - 我还有另一个项目,其中默认命名空间是 Project.Service。

我在Project.App 中包含了从Project.Service 创建的DLL 作为参考——原因是项目位于两个不同的解决方案中,由两个不同的组维护。

当我尝试在代码中使用引用并进行编译时,我总是收到一条错误消息,上面写着"The type or namespace 'Service' does not exist in the namespace 'Project'".

我在这里错过了什么?

编辑:我找到了问题的解决方案:Namespace not recognized (even though it is there)

【问题讨论】:

  • 如何添加参考?代码是什么样子的?
  • 错误是否出现在 Project.App 中的“using”语句中?
  • @GameScripting:这是非常基本的——我只是想使用参考中的一个类——我不确定还有什么其他方法可以尝试。
  • @David:我只是在visual studio中右键单击,添加了引用并指向了DLL

标签: c# asp.net dll


【解决方案1】:

您是否确认您要使用的类在 Project.Service 命名空间中并且是公共的?即使 Project.Service 是默认命名空间,也不能保证程序集中的任何类都具有该命名空间。

【讨论】:

    【解决方案2】:

    既然你似乎有正确的参考......

    Project.Service 中的所有类都可以是 internal,因此其他项目不会“看到”任何东西。

    如果是真的 - 公开或让您的程序集成为其他程序集“InternalsVisibleTo”的朋友(请注意,这需要两者都经过强签名)。

    【讨论】:

      【解决方案3】:

      尝试为Project.Service dll 指定别名,然后将别名导入您的代码中。像这样:

      1. 在项目的 References 文件夹中右键单击引用的 dll,然后单击“属性”
      2. 在“别名”字段中输入此引用的新别名,例如“服务”
      3. 在您的代码页的顶部添加此指令:extern alias Services;
      4. 添加这样的 using 语句:using Service = Services;
      5. 像这样引用Project.Service 命名空间:Service.DoSomthing();

      此时你应该很高兴。

      【讨论】:

      • 这很奇怪。您可以发布您使用的代码吗?这应该有效。也许你或我错过了什么?
      【解决方案4】:

      我不久前读过一篇文章(在 stylecop 告诉我移动我的 using 语句之后),在当前命名空间内移动 using 语句可以帮助解决这样的命名空间冲突。

      namespace example
      { 
         using xxxxx
      }
      

      查看以下帖子:Should 'using' statements be inside or outside the namespace?

      【讨论】:

        【解决方案5】:

        我会首先检查它是否真的被添加:可能 Service dll 中的目标框架与您应用中的目标框架不同(更高版本)。

        【讨论】:

          【解决方案6】:

          How to: Use the Namespace Alias Qualifier (C# Programming Guide)

          //example
          using colAlias = System.Collections;
          

          【讨论】:

          • 试过了 - 就我而言,它仍然说同样的话。编译后,它说的是“服务”不存在。就像您说 Project.[something] 时,它只会转到本地项目(名称为 Project.App)
          猜你喜欢
          • 2021-11-22
          • 1970-01-01
          • 2011-08-06
          • 1970-01-01
          • 1970-01-01
          • 2010-09-20
          • 1970-01-01
          • 2013-01-26
          相关资源
          最近更新 更多