有没有办法解决自动生成的WSDL代码中的系统命名空间冲突?

时间:2013-10-08 17:11:49

标签: c# wcf web-services wsdl

非常简单,但相当沮丧。我(不幸的是,我无法更改)我的项目中的库,它在MyCompany.System命名空间中声明了它的类。在我的其他库中添加服务引用之后,我在自动生成的代码中收到了数百个错误,因为System.* .NET命名空间都被解析为MyCompany.System.*命名空间。

通过编辑自动生成的代码并将global::添加到System.*的所有引用,可以轻松解决问题。令人困惑的是,为什么一些自动生成的代码已经有了这个,而有些/大多数没有。我无法在VS2012中找到任何选项来强制WSDL自动附加global::

那么我有什么选择呢?

2 个答案:

答案 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