我尝试为我找到的WCF REST服务创建一个简单的客户端 here.
我添加了服务参考,我写了这段代码:
private void button1_Click(object sender, EventArgs e)
{
WebClient proxy = new WebClient();
string serviceURL =
string.Format("http://localhost:53215/IBookService.svc/GetBooksNames");
byte[] data = proxy.DownloadData(serviceURL);
Stream stream = new MemoryStream(data);
DataContractJsonSerializer obj =
new DataContractJsonSerializer(typeof(finalProject_ClientX.ServiceReference3.Book));
finalProject_ClientX.ServiceReference3.Book book = obj.ReadObject(stream) as finalProject_ClientX.ServiceReference3.Book;
MessageBox.Show("book ID : " + book.BookName);
}
当我运行代码时(按下按钮),我收到以下错误:
未处理的类型异常 发生'System.Runtime.Serialization.SerializationException' System.Runtime.Serialization.dll
其他信息:类型 'finalProject_ClientX.ServiceReference3.Book'无法序列化 JSON,因为其IsReference设置为“True”。 JSON格式的确如此 不支持引用,因为没有标准格式 代表参考。要启用序列化,请禁用 IsReference设置类型或适当的父类 类型。
当我在浏览器中运行“http://localhost:53215/IBookService.svc/GetBooksNames”时,我得到了这些书:
“[”MVC音乐商店 - 教程 - v3.0“,”Pro.ASP.NET.MVC.3.Framework“,”应用程序架构指南“ v2“,”Gang of Four Design Patterns“,”CS4 Pocket Reference“]”
有什么问题?
答案 0 :(得分:0)