有没有办法从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);
}
}
答案 0 :(得分:3)
您将返回文件的字节,并且接收方应知道如何处理数据(即将其保存到具有适当扩展名的文件,或者在数据库或其他任何内容中),并提供您提供的元数据信息。数据可以是一个简单的字节数组,也可以使用流和缓冲功能。
简短回答是肯定的。
如果您可以向我们提供进一步的信息,甚至可能是您正在处理并且遇到特定问题的某些内容,那么我们可以提供最具体的帮助 - 因为它只是要求简洁的答案。< / p>
答案 1 :(得分:0)
除非您有单独的使用服务操作的原因,否则您可以按照此处所述实现流式提供程序:Streaming Provider (WCF Data Services)。然后获取您的文件就像访问实体上的属性一样。