非常简单,但相当沮丧。我(不幸的是,我无法更改)我的项目中的库,它在MyCompany.System
命名空间中声明了它的类。在我的其他库中添加服务引用之后,我在自动生成的代码中收到了数百个错误,因为System.*
.NET命名空间都被解析为MyCompany.System.*
命名空间。
通过编辑自动生成的代码并将global::
添加到System.*
的所有引用,可以轻松解决问题。令人困惑的是,为什么一些自动生成的代码已经有了这个,而有些/大多数没有。我无法在VS2012中找到任何选项来强制WSDL自动附加global::
。
那么我有什么选择呢?
答案 0 :(得分:0)
一些想法,其中一个可能有用。 :)
在自动生成的代码将存在的项目中,首先编辑Visual Studio项目设置,并将项目的默认命名空间更改为MyCompany以外的其他名称空间。这可能会阻止系统被解释为MyCompany.System。
尝试使用命名空间别名:
使用MyCompanySystem = MyCompany.System;
答案 1 :(得分:0)
你可以使用这样的extern别名: 在MyCompany.System的属性中,dll将别名设置为Msystem
extern alias MSystem
//using statements
using MSystem.MyCompany.System
msdn关于extern别名:https://msdn.microsoft.com/pl-pl/library/ms173212.aspx