我最近发现了IsolatedStorage
.net中的设施,我想知道何时应该将它们用于我的应用程序数据,而不是我应该使用它(例如)Application.LocalUserAppDataPath
.
我注意到的一件事是Application
在winforms应用程序之外不存在,所以IsolatedStorage
对于需要某些特定存储的类库来说似乎有意义,特别是如果该库可能被Web应用程序和winforms app.这是唯一的区别点,还是还有更多呢?
(作为一项规则,直到现在,我已经让应用程序在库可能需要某种外部存储时向库提供文件流 - 一般来说,我不喜欢库的想法调用者上下文外部的某种状态.)
IsolatedStorage有一些有趣的功能可能会让你选择它:
即使非常低的可信应用程序(例如一次点击)也可以访问独立存储.并非所有应用程序都可以访问AppData.根据应用程序强加的安全策略,IsolatedStorage也可以受到限制,但它通常比AppData /文件系统更易于访问.
可以通过管理员策略控制IsolatedStorage存储要求.
您不必知道存储数据的存储位置或方式.它有一个统一的API,可以在所有系统上访问它,你可以完全忽略它存储的底层路径.正如你所说,这对于一个可能不知道托管应用程序如何存储数据的库非常有用.
您还可以将数据存储在隔离存储中,并且可以非常轻松地实现不同的隔离级别.有关更多信息,请参阅IsolatedStorageScope值.这是它的同名,所以我想我应该先列出这一点:)
不利方面:
IsolatedStorage对您可以存储的数据量有一些显着的限制.例如,应用程序首选项会很好,但它不适合文档.
一些有用的链接:
隔离存储介绍
执行隔离存储任务