1

我使用 C# 在 ASP.NET 中开发了一个 Web 服务。它的一种 Web 方法返回使用 xsd 命令从 xsd 模式文件创建的复杂类型。

许多客户端设备可以毫无问题地使用此 Web 服务。视窗手机,PC。所有都是.Net 应用程序。

现在一个 VB6 客户端需要使用 SOAP Toolkit 3.0 来使用这个 Web 服务,他遇到的问题可能是由于序列化的 xml 数据中的不同命名空间。

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xmlns:xsd="http://www.w3.org/2001/XMLSchema"
   xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
   <soap:Body>
      <GetProductionDataMachineryResponse xmlns="http://myFactory.it/">
         <GetProductionDataMachineryResult xmlns="http://tempuri.org/XMLSchemaData.xsd">
            <ResultRequest>Ok or No Data Found </ResultRequest>
            ..... 
         </GetProductionDataMachineryResult>
      </GetProductionDataMachineryResponse>
   </soap:Body>
</soap:Envelope>

如果我删除 .cs 文件中的以下注释

[System.Xml.Serialization.XmlTypeAttribute(Namespace="http://tempuri.org/XMLSchemaData.xsd")]
[System.Xml.Serialization.XmlRootAttribute(Namespace="http://tempuri.org/XMLSchemaData.xsd", IsNullable=false)]

VB6 客户端工作正常。但其他客户端需要更新网络参考。还有 80 多个其他客户,因此这不是一个有吸引力的选择。

有没有办法让它在不破坏旧客户的情况下与新客户一起工作?

4

0 回答 0