如何从WCF数据服务返回文件?

时间:2012-11-01 13:57:50

标签: wcf-data-services

有没有办法从WCF数据服务中的服务操作方法返回文件,即pdf或excel?

例如,让我们说我有一个服务操作的以下WCF数据服务。为简单起见,服务操作可以直接或使用ServiceProvider从文件中读取pdf。

public class TheService : DataService<ServiceProvider>
{
    public static void InitializeService(DataServiceConfiguration config)
    {
        config.SetServiceOperationAccessRule("GetPdf", ServiceOperationRights.All);
        config.DataServiceBehavior.MaxProtocolVersion = DataServiceProtocolVersion.V2;
    }

        [WebGet]
        public ? GetPdf(string fileName)
        {
             byte[] byteArray = System.IO.File.ReadAllBytes(fileName);
        }
}

2 个答案:

答案 0 :(得分:3)

您将返回文件的字节,并且接收方应知道如何处理数据(即将其保存到具有适当扩展名的文件,或者在数据库或其他任何内容中),并提供您提供的元数据信息。数据可以是一个简单的字节数组,也可以使用流和缓冲功能。

简短回答是肯定的。

如果您可以向我们提供进一步的信息,甚至可能是您正在处理并且遇到特定问题的某些内容,那么我们可以提供最具体的帮助 - 因为它只是要求简洁的答案。< / p>

答案 1 :(得分:0)

除非您有单独的使用服务操作的原因,否则您可以按照此处所述实现流式提供程序:Streaming Provider (WCF Data Services)。然后获取您的文件就像访问实体上的属性一样。