c#namespace clash

时间:2013-01-03 18:44:18

标签: c# asp.net dll

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

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

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

我在这里缺少什么?

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

6 个答案:

答案 0 :(得分:1)

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

//example
using colAlias = System.Collections;

答案 1 :(得分:0)

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

答案 2 :(得分:0)

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

namespace example
{ 
   using xxxxx
}

请参阅以下帖子:Should 'using' statements be inside or outside the namespace?

答案 3 :(得分:0)

尝试为Project.Service dll添加别名,然后将别名导入代码中。像这样:

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

    此时你应该很高兴。

答案 4 :(得分:0)

因为您似乎正确引用了......

Project.Service中的所有课程都可能是internal,因此其他项目不会“看到”任何内容。

如果是真的 - 公开或让你的其他集会的组装朋友“InternalsVisibleTo”(请注意,它要求两者都有强烈签名)。

答案 5 :(得分:0)

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