我无法理解如何纠正这个问题。大约一个星期前,它出现了,我不知道我做出的改变可能导致了什么。我们使用SVN并且我回滚了我对这些错误的可能罪魁祸首所做的更改,但是当我构建我的asp.net webforms项目时,我仍然遇到以下错误:
The namespace <global namespace> already contains a definition for 'TrxStatus'
The namespace <global namespace> already contains a definition for 'MessageStatusType'
这两个错误重复5次(总共10个错误),源文件是为我们项目中的Web服务负载生成的代码。
文件名是App_Code.34kjg234jh1.cs(组成,但你明白了),并在每个文件的顶部告诉我它是从哪里生成的:
App_Code\App_WebReferences\SomeService\SomeWebService.wsdl
如果我进入.wsdl定义,我相信他们做都基于这一行生活在同一名称空间中:(注意,我不是.wsdl wiz,所以告诉我,如果我我错了)
<s:schema elementFormDefault="qualified" targetNamespace="http://www.thirdpartysite.com/Soa/Foundation/">
<s:import namespace="http://www.thirdpartysite.com/Soa/Foundation/MessageDefinition.xsd" />
这是一个继承自我们之前的开发人员的应用程序(它是一个开发商店,所以我通常会在黑暗中探讨)所以我不知道为什么我们有大约7 不同的应用程序中的Web服务,全部使用该命名空间定义,ALL包含违规的“TrxStatus”和“MessageStatusType”。
我不想更改命名空间,因为它是正确的命名空间(我相信),但我也需要这个冲突才能消失。我不确定要走哪条路。
我试图进入其中一个.wsdl文件并将TrxStatus更改为TrxStatus_Whatever,但这给了我这个错误:
Unable to import binding 'MyWebServiceName' from namespace http://www.thirdpartysite.com/SOA/Foundation
另一个可能的线索是,我收到来自各种网络服务的大量警告:
The 'http://www.thirdpartysite.com/Soa/Foundation/MessageDefinition.xsd:SomeElementName' element is not declared.
有关可能的解决方案的任何建议吗?根本原因是什么?请不要告诉我,我需要重新编写所有这些服务....
答案 0 :(得分:0)
我绝对不是专家,事实上我做的很少有ASP.NET&amp;服务。
BUT。听起来似乎存在冲突的导入(即使用),这些导入具有相同名称的类型。
proj1:A.SomeType proj2:A.SomeType
您可以添加对这两个项目的引用,它可以正常播放(我相信)。但是当您导入两个名称空间时会遇到困难,因为类型名称会发生冲突。
您可以使用global :: accessor。
访问正确的类型你甚至可以在using语句中使用global ::。
using A = global::[path to correct project and type here]
不确定它对你有多大用处,但有关global :: here的更多信息: