【问题标题】:Consume WCF Rest Service (JSON) using C# ASP.NET MVC使用 C# ASP.NET MVC 使用 WCF Rest Service (JSON)
【发布时间】:2011-09-30 12:42:47
【问题描述】:
我在 C# ASP.NET MVC 应用程序中使用返回 JSON 的 WCF REST 服务时遇到困难。我正在尝试在控制器中使用该服务。我在同一个解决方案中有一个 ASP.NET MVC 项目和一个服务项目。我在本地 IIS 中创建了一个指向服务项目的条目(即http://localhost/SampleService/).The WCF 服务有效,因为我可以访问 URL 并返回正确的 JSON。
是否有任何关于通过控制器从 RESTful WCF 服务使用 JSON 的代码示例?
【问题讨论】:
标签:
c#
wcf
asp.net-mvc-3
rest
c#-4.0
【解决方案1】:
您可以使用 DataContractJsonSerializer:
这是一个例子:
var client = new WebClient();
var data = client.DownloadData("http://localhost/SampleService/GetJsonMessage");
var stream = new MemoryStream(data);
var obj = new DataContractJsonSerializer(typeof(string));
var result = obj.ReadObject(stream).ToString();
在你的控制器中你可以这样做来查看结果
return Content(result.ToString())
【解决方案2】:
您可以使用内置的 DataContractJsonSerializer 或 JSON.NET 库的 JsonSerializer。
我更喜欢后者,因为它更健壮。有时DataContractJsonSerializer 无法反序列化 JSON 对象。
示例代码:
Product deserializedProduct = JsonConvert.DeserializeObject<Product>(jsonText);
要下载库,请转到http://json.codeplex.com/
【解决方案3】:
我使用了 WebChannelFactory,效果很好。