.net WebMethod扩展结果对象

.net WebMethod扩展结果对象,.net,vb.net,web-services,webmethod,.net,Vb.net,Web Services,Webmethod,我有一个ASMXWeb服务正在被激活的客户端使用。客户端已在Visual Studio中将该服务作为服务引用导入 现在我需要更改Response对象GetUnitDescription\u Request,以便为新客户机提供som额外属性,但激活的属性仍然可以工作 Public Class GetUnits_Result property Id() property Name() 'This and some more is new! property Timestamp

我有一个ASMXWeb服务正在被激活的客户端使用。客户端已在Visual Studio中将该服务作为服务引用导入

现在我需要更改Response对象
GetUnitDescription\u Request
,以便为新客户机提供som额外属性,但激活的属性仍然可以工作

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
_
公共函数GetUnits(作为GetUnits\u请求的ByVal req)作为GetUnits\u结果
返回单位(req)
端函数

为什么不简单地创建一个新的
WebMethod
来返回一个具有新属性的新响应对象呢。它应该能够重用大部分相同的业务逻辑


通过这种方式,老客户将得到他们所期望的,新客户也将得到他们所期望的。

我可以做到这一点,但我认为有一种更好的方式,我不需要维持两种——而且随着时间的推移——几乎相似的方法。