WCF WebInvoke Méthode POST

J'ai un service wcf, et je veux tester l'affichage des données. Mais le paramètre de ma fonction ne reçoit jamais de valeurs.

[OperationContract]
[WebInvoke(UriTemplate = "TestPost", Method = "POST", 
        ResponseFormat = WebMessageFormat.Json,
        RequestFormat = WebMessageFormat.Json,
        BodyStyle = WebMessageBodyStyle.WrappedRequest)]
int Test(string value);

public int Test(string value)  //Value stays null
{
    return 0;
}

Le JSON demande que j'ai envoyer, construire à l'aide de Fiddler2

http://localhost:49633/Service1.svc/TestPost

User-Agent: Fiddler
Host: localhost:49633
Content-Length: 42
Content-type: application/json

{"value":{"name":"value","name1":"value"}}

Je veux le paramètre de contenir une chaîne JSON, donc, fondamentalement, je suis entrain de créer un JSON demande qui contient un objet JSON, parce que je veux désérialiser l'objet JSON plus tard dans un de mes objets personnalisés. Des idées pourquoi la valeur du paramètre reste nulle?

Grâce

  • Le paramètre est une chaîne, donc sa valeur doit être une chaîne de caractères trop. Essayer de passer {"value": "{\"name\": \"value\", \"name1\": \"value\"}"} à la place. Mais je suis surpris que le service n'est pas de vous donner une erreur au lieu d'un argument null.
  • Pouvez-vous essayer en supprimant le BodyStyle à la valeur par défaut d'un WrappedRequest
InformationsquelleAutor Armand | 2012-03-15