这个问题是@ joshperry对CustomQueryStringConverter的回答。我通过一个小修改实现了这个解决方案。我的版本转换System.Int32[]
而不是string[]
。
但是,我的WCF配置有问题。我的服务包括SOAP,XML和JSON。 SOAP不是问题,这个解决方案适用于XML,但JSON仍然搞砸了。我尝试发现自动执行JSON转换的类(enableWebScript行为)是一个密封类,所以我不能像对WebHttpBehavior
那样覆盖它。我也试过添加两个行为,但这也不起作用:
<behaviors>
<endpointBehaviors>
<behavior name="xmlBehavior">
<ArrayQuerystring />
</behavior>
<behavior name="jsonBehavior">
<ArrayQuerystring />
<enableWebScript />
</behavior>
</endpointBehaviors>
</behaviors>
我认为这可能是一个订购问题?如果我将ArrayQuerystring
行为放在第一位,我就没有结果。如果我把它放在第二位,那么我得到的结果与XML端点相同。如何将CustomQuerystringConverter应用于JSON端点?
答案 0 :(得分:1)
JSON解析器已经支持数组。您可以在URL行上传递它们,如下所示:
...?ID=2&includedCollections=["Addresses","Phones"]