有人可以指出我如何能够覆盖调用webservice时发生的序列化吗?
基本上我的目标是将TIMESTAMP附加到从我的webservice返回的所有对象,但仅在我的webservice中使用JavascriptSerializer而不是XML序列化器时。
例如,下面是我的网络服务中包含的方法。
<WebMethod()> _
<ScriptMethod(ResponseFormat:=ResponseFormat.Json, UseHttpGet:=True)> _
Public Function GetSettingData(ByVal Username As String, ByVal Password As String) As SettingList
当在某个时刻调用webservice(作为GET请求)时,将调用JavascriptSerializer并解析我的对象并将其作为JSON输出。我假设在那个调用期间的某个地方我可以插入我自己的JavascriptSerializer版本并根据需要进行操作?
任何人都可以在这里指导我吗?
(PS:我很清楚我可以从我的所有web服务中返回字符串并按照实际webmethod调用的要求执行序列化,但我正在寻找一个'更好'的解决方案(除此之外意味着我需要如果我想返回XML,请使用不同的方法))
答案 0 :(得分:1)
您可以使用Stream
或Message
类作为返回类型,然后就可以实现自定义序列化。例如,请参阅How to set Json.Net as the default serializer for WCF REST service作为示例。