我使用 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 多个其他客户,因此这不是一个有吸引力的选择。
有没有办法让它在不破坏旧客户的情况下与新客户一起工作?