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

C# 在Silverlight 4中下载后自动打开文件,c#,asp.net,silverlight,excel,C#,Asp.net,Silverlight,Excel,我正在创建一个excel电子表格服务器端,并通过Silverlight前端下载到客户端。它由用户单击按钮并显示SaveFileDialog启动。用户输入文件名后,silverlight将启动对web服务的异步调用,完成后返回一个字节数组,该数组将写入用户请求保存它的任何位置。这一切都很好 然后如何在客户端的PC上自动打开此文件 您不需要或COM互操作 在C语言中,这样做的“标准”方式是“Process.Start(path)”。这在Silverlight中是不允许的,因为与您的场景无关的可靠安全

我正在创建一个excel电子表格服务器端,并通过Silverlight前端下载到客户端。它由用户单击按钮并显示SaveFileDialog启动。用户输入文件名后,silverlight将启动对web服务的异步调用,完成后返回一个字节数组,该数组将写入用户请求保存它的任何位置。这一切都很好


然后如何在客户端的PC上自动打开此文件

您不需要或COM互操作

在C语言中,这样做的“标准”方式是“Process.Start(path)”。这在Silverlight中是不允许的,因为与您的场景无关的可靠安全原因

理论上,如果您的Silverlight 4应用程序正在运行“浏览器不足”或Silverlight 5(Beta版)应用程序具有新的高级权限,则可以使用COM互操作打开文档。这里的问题是您无法从SaveFileDialog获取文件路径,因此您不知道要传递给COM Interop Open命令的路径。您可能会“对其进行黑客攻击”(例如,根据文件名和创建时间戳进行搜索)

参考文献
http://justinangel.net/CuttingEdgeSilverlight4ComFeatures

嗯,我明白了。我只是假设我会有路径,因为我有savefiledialog,但在调试模式下,我可以看到没有路径。浏览器也没有用完。我想从安全角度来看,这是有道理的,但这是一种让客户恼火的方式:忽略一些如此简单(理论上)和用户友好的东西。再加上无法在savefiledialog中设置默认文件名。。。