Es gibt einen Weg, es zu tun .. Der Betriebsvertrag ist eigentlich eine Zeichenfolge. Ich entkomme der JSON-Saite, um sie als Saite zu behalten. Ich dann in der Web-Methode entpacken Sie die Zeichenfolge und analysieren Sie es in ein Wörterbuch mit NewtonSoftJson Ich benutzte Wörterbuch, aber Sie könnten auch Wörterbuch tun, wenn Sie wollten. Hoffe, dass dies nützlich ...
I NewtonSoft Json-Bibliothek verwendet ...
C# -Code
using Newtonsoft.Json;
[OperationContract]
[WebInvoke(Method = "POST", ResponseFormat = WebMessageFormat.Json,
RequestFormat = WebMessageFormat.Json)]
public void testMethod(string jsonData)
{
string data = Uri.UnescapeDataString(jsonData);
Dictionary<string, string> x = jsonConvert.DeserializeObject<Dictionary<string, string>>(data);
foreach (KeyValuePair<string, string> kvp in x)
{
}
}
JSCode
var Data = {
width: 400,
height: 200,
someString: "somedata"
};
$.ajax({
type: "POST",
url: "Service1.svc/testMethod",
contentType: "application/json; charset=utf-8",
dataType: "json",
timeout: 1000000,
data: '{"jsonData": "' + escape(JSON.stringify(Data)) + '"}',
error: function(error) {
},
success: function (data) {
},
});
Möglicherweise möchten Sie auf dieser Seite einen Blick nehmen in die WCF-Dokumentation (die viel aktueller ist als diese Frage): https://docs.microsoft.com/en-us/dotnet/framework/wcf/feature-details/collection-types-in-data-contracts –