我创建了一个C#控制台应用程序。在该应用程序中,我有许多名称空间。
例如:
namespace com.xyz.foo.bar
{
}
namespace com.xyz.abc.def
{
}
当我将此控制台应用程序的引用添加到WCF服务项目中时,某些命名空间无法导入。即,从上面的示例中,我可以获得com.xyz.foo.bar
命名空间,但com.xyz.abc.def
命名空间不可用。
我不明白为什么会这样。
如果我从'对象浏览器'打开控制台应用程序的可执行文件,我可以看到所有命名空间。
任何人都可以解释这件事背后的原因吗?
答案 0 :(得分:3)
我有一个类似的问题,即使在同一个解决方案中有一个项目引用,类型是公共的等等,找不到命名空间。
事实证明,我需要将“目标框架”更改为“.NET Framework 4”而不是“.NET Framework 4 Client Profile”。我没有理会为什么这会导致“未知命名空间”错误,但它解决了我的问题。
约翰
答案 1 :(得分:1)
您的命名空间必须包含标记为public
namespace com.xyz.foo.bar
{
class MyClass
{
}
}
namespace com.xyz.abc.def
{
public class AnotherClass
{
}
}
bar
将会显示 def
名称空间(如果其中没有其他内容声明public
)