2010-01-21 6 views
2

Cette question fait suite à la réponse de @ joshperry au CustomQueryStringConverter. J'ai implémenté cette solution avec une petite modification. Ma version convertit System.Int32[] au lieu de string[].Comment appliquer deux comportements Endpoint à une configuration de comportement?

Cependant, j'ai un problème avec ma configuration WCF. Mon service propose SOAP, XML et JSON. SOAP n'était pas un problème, cette solution fonctionne pour XML, mais JSON est encore foiré. J'ai essayé de découvrir que la classe qui fait la conversion JSON automatiquement (enableWebScript comportement) est une classe scellée, donc je ne peux pas la contourner comme vous l'avez fait pour WebHttpBehavior. J'ai aussi essayé d'ajouter deux comportements, mais cela ne fonctionne pas non plus:

<behaviors> 
     <endpointBehaviors> 
     <behavior name="xmlBehavior">   
      <ArrayQuerystring /> 
     </behavior> 
     <behavior name="jsonBehavior">      
      <ArrayQuerystring /> 
      <enableWebScript /> 
     </behavior> 
     </endpointBehaviors>  
    </behaviors> 

Je pense qu'il pourrait être un problème de commande? Si je mets d'abord le comportement ArrayQuerystring, je n'obtiens aucun résultat. Si je le mets en second, j'obtiens les mêmes résultats que le point de terminaison XML. Comment appliquer votre CustomQuerystringConverter à un point de terminaison JSON?

Répondre

1

L'analyseur JSON prend déjà en charge les tableaux. Vous pouvez les passer sur la ligne d'URL comme ceci:

...?ID=2&includedCollections=["Addresses","Phones"] 
Questions connexes