.net - 什么时候应该选择IsolatedStorage和AppData文件存储?

标签 .net isolatedstorage appdata

我最近在.net中发现了IsolatedStorage设施,我想知道何时应将它们用于应用程序数据,以及何时应使用(例如)Application.LocalUserAppDataPath

我注意到的一件事是Application在winforms应用程序之外并不存在,因此IsolatedStorage似乎对于需要某些特定存储的类库有意义,特别是如果该类库可能同时被两个Web应用程序使用和一个winforms应用程序。那是唯一的区别点,还是更多?

(通常,到现在为止,当库可能需要某种外部存储时,我已经使该应用向库提供文件流-总的来说,我不喜欢库具有调用者上下文外部的某种状态。)

最佳答案

IsolatedStorage具有一些有趣的功能,可能会让您选择它:

  • 即使是受信任程度非常低的应用程序(例如,单击一次)也可以访问隔离的存储。并非所有的应用程序都可以访问AppData。根据对应用程序施加的安全策略,IsolatedStorage也可能受到限制,但通常比AppData/文件系统更易访问。
  • IsolatedStorage的存储需求可以由管理员策略控制。
  • 您不必知道隔离存储数据的存储位置或存储方式。它具有用于在所有系统上访问它的统一API,您可以完全忽略它存储在其中的基础路径。如您所指出的,这对于可能不知道托管应用程序如何存储数据的库非常有用。
  • 您还可以轻松地将数据存储在隔离存储中,并且隔离级别各不相同。有关更多信息,请参见the IsolatedStorageScope values。这是它的名字,所以我想我应该首先列出这一点:)

  • 缺点:
  • IsolatedStorage在可以存储在那里的数据量方面有一些明显的限制。例如,应用程序首选项会很好,但不适用于文档。

  • 一些有用的链接:
  • Introduction to Isolated Storage
  • Performing Isolated Storage Tasks
  • 关于.net - 什么时候应该选择IsolatedStorage和AppData文件存储?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/483840/

    相关文章:

    .net-2.0 - Windows Installer 是否使用程序集版本或文件版本来更新 dll

    windows-phone-8 - 当我重建 Windows Phone 8 项目时,为什么我的isolatedStorage 会受到影响?

    iphone - 如何收集iPhone App信息

    C#耦合类——强类型结构设计

    .net - 在F#中使用自定义Marshaller

    c# - 如何包装项目中的每个函数?

    c# - AspectPriority 的使用

    silverlight - Windows Phone 7,创建可序列化的类

    c# - 如何为我的 ASP.NET Web 应用程序引用 App_Data 文件夹中的 Sqlite 数据库文件?

    wpf - 在 Windows Vista/7 上的 APPDATA 中创建文件夹