我有以下方法签名。我无法改变它(即我不能改变返回类型)。
public Stream GetMusicInfo(string songId)
{
XElement data = dao.GetMusicInfo(songId);
// how do I stream the XElement?
}
如何使用WCF流式传输XElement / XDocument?
答案 0 :(得分:5)
这很简单,如果你不介意实际上获取第一行中的所有数据:
public Stream GetMusicInfo(string songId)
{
XElement data = dao.GetMusicInfo(songId);
MemoryStream ms = new MemoryStream();
data.Save(ms);
ms.Position = 0;
return ms;
}
换句话说,只需将其写入内存中,然后通过内存中的表示形式返回一个流。请注意Position = 0;
调用,这是必要的,否则流将位于数据的 end 。
我希望希望 WCF会对流做正确的事。