在Silverlight 4下载后自动打开文件

我正在创build一个Excel电子表格服务器端,并通过Silverlight前端下载到客户端。 它是由用户点击一个button并用SaveFileDialog提供的。 一旦用户input文件名,silverlight开始对Web服务的asynchronous调用,并在完成时返回一个字节数组,写入到用户请求保存的位置。 这一切工作正常。

那我该如何自动在客户端PC上打开这个文件呢?

你不要或COM互操作

在C#中执行此操作的“标准”方法是“Process.Start(path)”。 在Silverlight中不允许出现与您的场景无关的良好可靠安全原因。

理论上,如果您的Silverlight 4应用程序运行“Out of Browser”,或者您的Silverlight 5(Beta)应用程序具有新的高级权限,则可以使用COM Interop打开文档。 这里的麻烦是你不从SaveFileDialog获得文件path,所以你不知道什么path传递给COM互操作打开命令。 你可能会“得到它”(如基于文件名和创build时间戳search)…

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