次のような WCF Data Service を追加しました。
[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 を取得しますが、それをどのように読み取るかわかりません。