How to apply two Endpoint Behaviors to one behavior configuration?
This question is a follow up to @joshperry's answer on CustomQueryStringConverter. I implemented this solution with a small modification. My version converts System.Int32[]
instead of string[]
.
H开发者_如何学编程owever, I have a problem with my WCF configuration. My service dishes out SOAP, XML and JSON. SOAP wasn't a problem, this solution works for XML, but JSON is still messed up. I tried found out that the class that does JSON conversion automatically (enableWebScript behavior) is a sealed class, so I can't override it like you did for WebHttpBehavior
. I also tried adding two behaviors, but that didn't work either:
<behaviors>
<endpointBehaviors>
<behavior name="xmlBehavior">
<ArrayQuerystring />
</behavior>
<behavior name="jsonBehavior">
<ArrayQuerystring />
<enableWebScript />
</behavior>
</endpointBehaviors>
</behaviors>
I think it might be an ordering issue? If I put the ArrayQuerystring
behavior first, I get no results. If I put it second, then I get the same results as the XML endpoint. How do I apply your CustomQuerystringConverter to a JSON endpoint?
The JSON parser already supports arrays. You can pass them on the URL line like this:
...?ID=2&includedCollections=["Addresses","Phones"]
精彩评论