c# - 如何使用 WCF 流式传输 XElement/XDocument?

标签 c# .net wcf

我有以下方法签名。我无法更改它(即我无法更改返回类型)。

public Stream GetMusicInfo(string songId)
{
    XElement data = dao.GetMusicInfo(songId);

    // how do I stream the XElement?
}

如何使用 WCF 流式传输 XElement/XDocument?

最佳答案

如果您不介意实际上获取第一行中的所有数据,那么这相当简单:

public Stream GetMusicInfo(string songId)
{
    XElement data = dao.GetMusicInfo(songId);
    MemoryStream ms = new MemoryStream();
    data.Save(ms);
    ms.Position = 0;
    return ms;
}

换句话说,只需将其写到内存中,然后通过内存中的表示形式返回一个流。请注意 Position = 0; 调用,这是必需的,否则流将位于数据的末尾

希望 WCF 能够对流做正确的事情。

关于c# - 如何使用 WCF 流式传输 XElement/XDocument?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7576422/

相关文章:

c# - Revit API - 错误的完整类名

c# - CLR 顺序结构布局 : aligning and size

c# - ASP.NET - 在 session 变量中存储类 - 它是如何工作的(内存)?

c# - 控制 WCF 响应格式和命名空间

c# - Microsoft Visual Studio 2012 无法在 c# 文件中设置断点

c# - 使用 c# 在 ASP.Net 中从 session 中检索 DateTime 和计算 TimeSpan 时出现问题。

c# - 如何获取带有参数的本地化属性错误消息?

c# - 如何在 C# 中声明可选类型?

c# - 如果我在 Entity Framework 中全局禁用 ProxyCreation 会有什么后果?

c# - : ASP.net 或 WCF 哪个更简单?