Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/310.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 有没有办法解决WSDL代码自动生成中的系统命名空间冲突?_C#_Wcf_Web Services_Wsdl - Fatal编程技术网

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

C# 有没有办法解决WSDL代码自动生成中的系统命名空间冲突?,c#,wcf,web-services,wsdl,C#,Wcf,Web Services,Wsdl,非常简单,但相当令人沮丧。我的项目中有一个库(不幸的是,我不能更改它),它在MyCompany.System名称空间中声明它的类。在向我的另一个库添加服务引用之后,我在自动生成的代码中遇到了数百个错误,因为System.*.NET名称空间都解析为MyCompany.System.*名称空间 通过编辑自动生成的代码并将global::添加到System.*的所有引用中,这个问题很容易解决。但令人困惑的是,为什么一些自动生成的代码已经有了这个功能,而一些/大多数没有。我无法在VS2012中找到任何选

非常简单,但相当令人沮丧。我的项目中有一个库(不幸的是,我不能更改它),它在
MyCompany.System
名称空间中声明它的类。在向我的另一个库添加服务引用之后,我在自动生成的代码中遇到了数百个错误,因为
System.*
.NET名称空间都解析为
MyCompany.System.*
名称空间

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


那么,如果有的话,我的选择是什么呢?

一些想法,其中一个可能有用。:)

在自动生成的代码所在的项目中,首先编辑Visual Studio项目设置,并将项目的默认名称空间更改为MyCompany以外的名称空间。这可能会阻止系统被解释为MyCompany.System

尝试使用命名空间别名:


使用MyCompanySystem=MyCompany.System

您可以这样使用外部别名: 在MyCompany.System dll的属性中,将别名设置为MSSYSTEM

extern alias MSystem
//using statements
using MSystem.MyCompany.System

msdn about extern alias:

当您在某个点添加web服务引用VS2012时,会要求生成代码的命名空间。在那个里提供一个和现有名称空间不冲突的名称空间。它确实要求这样做,但VS使用默认名称空间作为后缀。换句话说,提供
MyService
结果
MyCompany.MyService
。不过这是需要的——在项目的名称空间中生成代码很好。