2012-11-01 70 views
3

有沒有辦法從WCF數據服務中的服務操作方法返回文件,即pdf或Excel?如何從WCF數據服務返回文件?

例如,讓我說我有一個單一的服務操作下面的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

您將返回文件的字節數和接收器應該知道如何處理的數據(即它保存到適當的擴展名的文件,或者在數據庫或其他)給你提供的元數據信息它。數據可以是一個簡單的字節數組,也可以使用流和緩衝功能。

簡短答案是肯定的。

如果您可以向我們提供更多信息,甚至可能提供一些您正在處理的問題,並且有特殊問題,那麼我們可以提供最具體的幫助 - 因爲它只是要求提供一個簡潔的答案。

+0

用更多的信息更新了我的問題 – mstrand

0

除非您有使用服務操作的單獨原因,否則您可以實現Streaming Provider,如下所示:Streaming Provider (WCF Data Services)。然後獲取文件就像訪問一個實體的屬性一樣。

+0

那麼pdf文件需要使用web服務上的pdf庫提供的輸入參數生成 – mstrand