我有一个asmx网络服务被强行客户所消耗。客户端已在Visual Studio中将服务导入为服务引用。
现在我需要更改Response-object GetUnitDescription_Request
以获得 new 客户端的额外属性,但是那些仍然有效的。
Public Class GetUnits_Result
property Id()
property Name() 'This and some more is new!
property Timestamp()
End Class
现在,当我部署此服务并覆盖旧服务时,客户端获得Id
权限,但Timestamp
获取默认值 - 可能是因为它失败了新名称?我只想让服务说“嘿,绕过这个新的Name()
- 属性并继续”。
我无法控制客户端,因此无法更新服务引用。
<System.Web.Services.WebMethod(True, Description:="Gets Units"), SoapHeader("sHeader")> _
Public Function GetUnits(ByVal req As GetUnits_Request) As GetUnits_Result
return GetUnits(req)
End Function
答案 0 :(得分:0)
为什么不简单地创建一个新的WebMethod
来返回具有新属性的新响应对象。它应该能够重用大多数相同的业务逻辑。
这样,老客户就会得到他们期望的结果,新客户也会如此。