2010-12-09 29 views
3

我正在創建一個Excel電子表格服務器端並通過Silverlight前端下載到客戶端。它由用戶點擊一個按鈕並用SaveFileDialog提供。一旦用戶輸入文件名,silverlight開始對Web服務的異步調用,並在完成時返回一個字節數組,該字節數組寫入用戶請求保存的位置。這一切工作正常。在Silverlight 4下載後自動打開文件

我該如何在客戶端的PC上自動打開這個文件?

回答

2

你沒有或COM互操作

在C#這樣做的 '標準' 的方式是 '的Process.Start(路徑)'。在Silverlight中,這是不允許出現與您的方案無關的良好可靠安全原因的。

從理論上講,你可以使用COM互操作打開一個文檔提供您的Silverlight 4應用程序正在運行「脫離瀏覽器」或您Silveright 5(測試版)應用程序有新的高級權限。這裏的問題是你沒有得到的文件路徑從SaveFileDialog回來,所以你不知道要傳遞到COM互操作打開命令什麼路徑。你也許能夠「得到哈克與它」(例如搜索基於文件名和創建時間戳記)...

參考 http://www.itwriting.com/blog/2159-silverlight-4-with-com-can-do-anything-on-windows.html http://justinangel.net/CuttingEdgeSilverlight4ComFeatures

+0

哦,我倒看到。我只是假設我有路徑,因爲我有savefiledialog,但在調試模式下,我可以看到沒有路徑。沒有用完瀏覽器。我從安全角度來看它是有道理的猜測,但有什麼辦法惹惱客戶:留出這麼簡單的東西(在理論上)和用戶友好。這和該死的缺乏能夠在savefiledialog中設置默認文件名... – JumpingJezza 2010-12-10 07:19:45