【问题标题】:Namespace not available in other project命名空间在其他项目中不可用
【发布时间】:2011-10-25 18:57:15
【问题描述】:

我创建了一个 C# 控制台应用程序。在那个应用程序中,我有很多命名空间。

例如:

namespace com.xyz.foo.bar
{
}

namespace com.xyz.abc.def
{
}

当我将此控制台应用程序的引用添加到 WCF 服务项目中时,某些命名空间不可用于导入。即从上面的例子我可以得到com.xyz.foo.bar 命名空间但是com.xyz.abc.def 命名空间不可用。

我不明白为什么会这样。

如果我从“对象浏览器”打开控制台应用程序的可执行文件,我可以看到所有命名空间。

谁能解释一下这件事背后的原因??

【问题讨论】:

  • 他们的内容有什么不同吗?两者都有公开课吗?
  • @Matthiue,两个命名空间都有 1 个或多个公共类。 com.xyz.abc.def 命名空间有一个带有 main 方法的公共类。

标签: .net visual-studio namespaces c#-3.0


【解决方案1】:

我遇到了类似的问题,即使在同一解决方案中有项目引用、类型是公共的等等,也找不到命名空间。

原来我需要将“Target Framework”更改为“.NET Framework 4”而不是“.NET Framework 4 Client Profile”。我没有费心去弄清楚为什么这会导致“未知命名空间”错误,但它解决了我的问题。

约翰

【讨论】:

  • 我一上任就试试看。
【解决方案2】:

你的命名空间必须有类等标记为public

namespace com.xyz.foo.bar
{
    class MyClass
    {
    }
}

namespace com.xyz.abc.def
{
    public class AnotherClass
    {
    }
}

bar 命名空间将不可见,而 def 将不可见(如果其中没有声明其他任何 public

【讨论】:

  • 我在 com.xyz.foo.bar 命名空间中有公共类,但整个命名空间也不可用。为什么命名空间需要有公共类?
猜你喜欢
  • 1970-01-01
  • 2013-02-16
  • 2023-04-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-06-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多