总结一下,众所周知,
a) Silverlight 预计由浏览器托管,并在隔离的沙箱中运行,因此不会出现任何安全问题
- Silverlight 不能直接访问文件系统,除了隔离的存储区域
- 没有直接的方法可以在 Silverlight 中打开像文件保存这样的常见对话框(尽管支持打开对话框)。
b) Silverlight 无法访问打印机等本地资源
有什么方法可以超越沙盒,以便我可以在本地托管 Silverlight 应用程序、读取文件并在需要时将它们保存回来、将数据移交给打印机等等。
更新:
完整的 WPF 不是我的选择吗?不。我还对跨平台解决方案感兴趣——例如,您可以在 Mono Web 浏览器控件中托管 Silverlight,这样您几乎可以在任何地方运行它。
这个想法是通过在某些领域(如持久性、资源访问等)提供关注点分离,在我的桌面上重用我为 web 构建的相同应用程序。场景:
1- 某种小工具容器,可以访问本地资源。2 - 基于桌面 Silver light 的媒体应用程序
更新:
我刚刚做了一个 POC,使我能够访问打印机并在本地保存文件,当然是通过我托管 Silverlight 应用程序的 shell。如果你不想,你可以看看我博客中的帖子