silverlight 独立存储

silverlight 独立存储,第1张

概述  独立存储是silverlight提供的一个客户端存储,是一种局部信任机制。 独立存储提供了一个虚拟的文件系统的数据流对象,,是基于.net framework中独立存储建立起来的一个子集。 独立存储具有以下特点: 1、基于silverlight的应用程序被分配了属于它子集的存储空间,但是应用程序的程序集在存储空间中是共享的。 2、 IsolatedStorageFileStream 扩展了 F

  独立存储是silverlight提供的一个客户端存储,是一种局部信任机制。
独立存储提供了一个虚拟的文件系统的数据流对象,,是基于.net framework中独立存储建立起来的一个子集。


独立存储具有以下特点:
1、基于silverlight的应用程序被分配了属于它子集的存储空间,但是应用程序的程序集在存储空间中是共享的。
2、 IsolatedStoragefileStream 扩展了 fileStream,使用该类可以在独立存储中读取、写入和创建文件。

 

独立存储的功能通过密封类 IsolatedStoragefile 提供,位于命名空间System.IO.IsolatedStorage中,该类抽象了独立存储的虚拟文件系统。创建该类的一个实例,可以对文件或者文件夹进行管理,结合IsolatedStoragefileStream类类管理文件内容。

 

结合使用做了一个关于silverlight的独立存储应用的例子解说如下:
1、申请独立存储空间

?
/// <summary>         /// 申请独立存储空间         /// </summary>         /// <param name="size"></param>         /// <returns></returns>         public static bool ApplayStrogeSpace( double size)         {             try @H_502_97@             {                 using (var store = IsolatedStoragefile.GetUserStoreForApplication())                 {                     Int64 quotSize = Convert.ToInt64(size * 1024);                     Int64 curSize = store.AvailableFreeSpace;                     if (curSize < quotSize)                     {                         if (store.IncreaseQuotaTo(quotSize))                         { return true ; }                         else                         { return false ; }                     }                     else                     { return true ; }                 }             }             catch (IsolatedStorageException ex)             { throw new IsolatedStorageException( "申请独立存储空间失败!" + ex.Message); }         }


2、保存数据(支持引用类型的数据)

?
/// <summary>          /// 保存字符串到文件          /// </summary>          /// <param name="data"></param>          /// <param name="filename"></param>          public static voID SaveString( string data, string filename)          {              using (IsolatedStoragefile isf = IsolatedStoragefile.GetUserStoreForApplication()) @H_502_97@              {                  if (isf.fileExists(filename))                  { isf.Deletefile(filename); }                    using (IsolatedStoragefileStream isfs = new IsolatedStoragefileStream(filename,fileMode.Create,isf))                  {                      using (var sw = new StreamWriter(isfs))                      {                          sw.Write(data);                          sw.Close();                      }                  }              }          }            /// <summary>          /// 泛类型支持存储文件          /// </summary>          /// <typeparam name="T"></typeparam>          /// <param name="Tdata"></param>          /// <param name="filename"></param>          public static voID SaveTData<T>(T Tdata, string filename)          {              using (IsolatedStoragefile isf = IsolatedStoragefile.GetUserStoreForApplication())              { @H_355_502@                  if (isf.fileExists(filename))                  {                      isf.Deletefile(filename);                  }                  IsolatedStoragefileStream isfs = isf.Createfile(filename);                  DataContractSerializer ser = new DataContractSerializer( typeof (T));                  ser.WriteObject(isfs,Tdata);                  isfs.Close();              }          }

3、提取数据(支持应用类型的数据)

?
/// <summary>          /// 返回字符串          /// </summary>          /// <param name="filename"></param>          /// <returns></returns>          public static string FindData( string filename)          {              string data = string .Empty; @H_502_97@              using (IsolatedStoragefile isf = IsolatedStoragefile.GetUserStoreForApplication())              {                  if (isf.fileExists(filename))                  {                      using (var isfs = new IsolatedStoragefileStream(filename,fileMode.Open,isf))                      {                          using (var sr = new StreamReader(isfs))                          {                              string lineData;                              while ((lineData = sr.Readline()) != null ) { data += lineData; }                          }                      }                  }                }              return data;          }              /// <summary>          /// 泛类型返回          /// </summary>          /// <typeparam name="T"></typeparam>          /// <param name="filename"></param>          /// <returns></returns> @H_355_502@          public static T FindTData<T>( string filename)          {              T data = default (T);              using (IsolatedStoragefile isf = IsolatedStoragefile.GetUserStoreForApplication())              {                  if (isf.fileExists(filename))                  {                      IsolatedStoragefileStream isfs = isf.Openfile(filename,fileMode.Open);                      var ser = new DataContractSerializer( typeof (T));                      data = (T)ser.Readobject(isfs);                      isfs.Close();                  }              }              return data;          }


4、删除数据

?
/// <summary>          /// 清空独立存储          /// </summary>          /// <param name="filename"></param>          public static voID ReMove( string filename)          {              using (IsolatedStoragefile isf = IsolatedStoragefile.GetUserStoreForApplication())              { @H_502_97@                  if (isf.fileExists(filename))                  { isf.Deletefile(filename); }              }          }

 

这几个处理可以放在一个单独的类中,为其他类提供服务。使用很简单。在这里提供一个示例代码:http://files.cnblogs.com/Clivia/IsoLatedStroage.rar

总结

以上是内存溢出为你收集整理的silverlight 独立存储全部内容,希望文章能够帮你解决silverlight 独立存储所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1021603.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-23
下一篇 2022-05-23

发表评论

登录后才能评论

评论列表(0条)

保存