1

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

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

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

我在这里想念什么?

编辑:我找到了解决问题的方法:无法识别命名空间(即使它存在)

4

6 回答 6

1

如何:使用命名空间别名限定符(C# 编程指南)

//example
using colAlias = System.Collections;
于 2013-01-03T18:47:36.103 回答
0

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

于 2013-01-03T19:22:44.920 回答
0

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

namespace example
{ 
   using xxxxx
}

请参阅以下帖子:“使用”语句应该在命名空间内部还是外部?

于 2013-01-03T18:55:32.493 回答
0

尝试给Project.Servicedll 一个别名,然后将别名导入到您的代码中。像这样:

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

在这一点上你应该很高兴。

于 2013-01-03T18:59:46.337 回答
0

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

于 2013-01-03T18:47:36.283 回答
0

因为你似乎有正确的参考......

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

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

于 2013-01-03T19:04:33.333 回答