我添加了一个WCF数据服务,如:
[WebGet]
public byte[] GetPdf(int id)
{
...
return result;
}
当我从浏览器调用时
http://localhost:50300/data/MyService/GetPdf?id=114
我收到的回复如下:
<?xml version="1.0" encoding="UTF-8"?>
<d:GetPdf m:type="Edm.Binary"
xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata"
xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices">JVBERi0xLjQNCiXi48/TDQolDQold1BERjMgYnkgV1
...</d:GetPdf>
然后我尝试用
读取silverlight客户端中的字节 private void ReadPdf()
{
Uri uri = new Uri("http://localhost:50300/data/MyService/GetPdf?id=114");
var myQuery = client.BeginExecute(uri, MyCallback, null, "GET", null);
}
和MyCallback
public void MyCallback(IAsyncResult result)
{
???
}
结果我得到一个System.Data.Services.Client.QueryResult,但我不知道如何读它。
答案 0 :(得分:0)
请参阅此示例:http://msdn.microsoft.com/en-us/library/vstudio/dd756367(v=vs.100).aspx
基本上你想要这样的东西:
// Get the original query from the result.
DataServiceQuery<Customer> query = result as DataServiceQuery<Customer>;
byte[] resultBytes = query.EndExecute(result))
// Convert the bytes to your PDF or whatever
如何进行转换取决于您;这取决于你当然是序列化了字节。