我有一个基本命名空间为XXXX的Windows服务。我有许多WCF服务,其基本命名空间为WebServices。它们托管在IIS中。
当我将其中一个WCF服务(DataManagement)作为服务引用添加到我的Windows服务时,构建服务时出现以下错误:
Error 162 The type name 'WebServices' does not exist in the type 'XXXX.XXXX'
Reference.cs Line 200 Col 61
Error 163 The type name 'WebServices' does not exist in the type 'XXXX.XXXX'
Reference.cs Line 205 Col 94
Error 164 The type name 'WebServices' does not exist in the type 'XXXX.XXXX'
Reference.cs Line 205 Col 134
Reference.cs是一个自动生成的文件,创建的代码行是:
错误1:
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
public interface IDataManagementChannel : XXXX.WebServices.IDataManagement, System.ServiceModel.IClientChannel {
}
错误2& 3:
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
public partial class DataManagementClient : System.ServiceModel.ClientBase<XXXX.WebServices.IDataManagement>, XXXX.WebServices.IDataManagement {
我一直在努力解决这些问题但没有取得多大成功。我发现似乎与此问题无关的任何建议都不适用于我。问题存在一个问题,但没有答案。有什么想法吗?
答案 0 :(得分:0)
我非常确定您的问题正如以下代码
所示namespace XXXX
{
class XXXX
{
}
}
namespace XXXX.WebServices
{
class A
{
}
class B : XXXX.WebServices.A // compiler error : CS0426 The type name 'WebServices' does not exist in the type 'XXXX'
{
}
}
编译器正在尝试在名为XXXX
的类WebServices
中找到嵌套类型而不是XXXX.WebServices
命名空间,因此错误&#34; 不存在于的类型强> &#34;
您可以通过在名称空间前加global::
前缀来明确指出您引用名称空间的事实。在Reference.cs等生成的文件上执行此操作并不理想。如果可能,可以考虑在不同的命名空间中生成代理。
请参阅编译器错误CS0426 here
的帮助答案 1 :(得分:0)
有点晚了,但万一有人偶然发现了......
重现的步骤:
创建一个Windows服务项目&#34; TestService&#34;。 将Service1类重命名为TestService。
编译 - 它有效。
添加对WCF服务的引用。
编译 - 它不再有效。
错误CS0426:类型名称&#39; SomeWCFService&#39;类型&#39; TestService&#39;中不存在
解决方案:将TestService类的名称更改为其他名称,因为它与TestService名称空间冲突。