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