我创建了一个WCF 3.5应用程序,其中包含一个名为TestMe
的方法,如下所示:
[OperationContract]
[WebInvoke(UriTemplate = "/Login", Method = "POST",
BodyStyle = WebMessageBodyStyle.Wrapped,
ResponseFormat = WebMessageFormat.Json,
RequestFormat = WebMessageFormat.Json)]
MyDictionary<string, string> TestMe(string param1, string param2);
MyDictionary
是使用以下链接创建的:https://stackoverflow.com/a/7590189/546033
这里的一切都很好。但问题是从以下实现的方法返回数据时:
MyDictionary<string, string> success = new MyDictionary<string, string>();
success["desc"] = "Test";
return success;
它返回json:
{"TestMeResult":{"desc":"Test"}}
虽然我需要的是:
{"success":{"desc":"Test"}}
其中success
是对象名称。可以解决这个问题的方法是什么?
答案 0 :(得分:3)
只需删除BodyStyle = WebMessageBodyStyle.Wrapped, 它默认为WebMessageBodyStyle.Bare,但必须自己明确声明它。
修改强>
因为你正在处理JSON不会有帮助,因为它适用于XML风格。所以步骤是:
您也可以查看此链接,了解内部发生的事情: