我在Silverlight中遇到一些问题,在保存和打开文件时会遇到某种行为。
我们想要什么: 我们想要在Silverlight应用程序启动时提示用户打开文件。然后,我们将读取此文件中的任何信息,并使用它来设置应用程序的状态。我们还想回复用户点击“保存”并将状态中的所有更改写回原始文件。
我们尝试了什么:
隔离存储:执行我们想要的但是我们遇到的问题是人们无法备份工作,擦除硬盘,使用不同的计算机(在同一个LAN上)等等。我们的用户希望保存到指定位置,以便他们可以将工作存储在网络驱动器或USB密钥上。
打开文件对话框:给我们一个只读流,当用户点击保存时,我们无法更新文件。
保存文件对话框:不允许我们读取已存在的文件竞争/覆盖所选文件。
提升信任模式:在浏览器中不起作用。在本地安装不是一种选择,因为我们的用户不是他们机器的管理员。
有没有办法完成我们想要忽视的东西?
答案 0 :(得分:2)
简短的回答是:不。
然而,这里有一些想法涉及改变UI语义,这可能使用户更容易接受。
而不是应用程序状态的“打开/保存文件”使用“导入/导出”。用户更有可能接受在OpenFileDialog中指定文件以导入和以在SaveFileDialog中指定要导出的文件(尽管是相同的文件)的需要。
正常的日常状态将存储在独立存储中,因此只有在用户想要将数据传输到另一台计算机时才会调用导入/导出。
另一个选项(可能除了上述选项之外)是在服务器上维护应用程序状态的副本。隔离存储中的状态更改也会转发到服务器。隔离存储变得更像缓存。
当用户使用另一台计算机时,将从服务器获取其应用程序的状态,从而更新当前计算机的独立存储中的副本。