我不想阅读整个内容,而是将其放在文件中而不是流式传输。我想我可以使用WCF和流媒体以某种方式将datareader流式传输到客户端吗?
答案 0 :(得分:0)
您可以使用MessageContracts实现此目的。
当我第一次尝试自己解决这个问题时,我偶然发现了这篇文章,它真的有很多帮助:http://www.codeproject.com/Articles/166763/WCF-Streaming-Upload-Download-Files-Over-HTTP
以下是设置合同的一个非常基本的示例:
[MessageContract]
public class MyFileInfo : IDisposable
{
[MessageHeader(MustUnderstand = true)]
public string FileName;
[MessageHeader(MustUnderstand = true)]
public long Length;
[MessageHeader]
public string FileHash;
[MessageHeader]
public string Status;
[MessageBodyMember]
public Stream FileData;
public void Dispose()
{
if (FileData != null)
{
FileData.Close();
FileData = null;
}
}
}
[MessageContract]
public class FileRequest
{
[MessageHeader]
public string fileName;
}
当我第一次学习WCF时,我讨厌默认的应用程序配置文件是多么冗长,所以在一些谷歌搜索/研究后,我写了一篇关于如何在没有庞大的应用程序配置文件的情况下设置WCF客户端代理的代码示例的博客文章: http://justindonohoo.blogspot.com/2012/08/generic-wcf-client-library-code.html