Silverlight 2 Beta 2的Isolated Storage

Silverlight beta 2 的配置有一个重大变化就是对DRM 和Application Storage的配置

Application storage的默认大小是1M,可以通过代码修改,通过使用IsolatedStorageFile 类操作。IsolatedStorageFile 类抽象了isolated storage的虚拟文件系统 . 你创建一个 IsolatedStorageFile 类的实例, 你可以使用它对文件或文件夹进行列举或管理.同样你还可以使用该类的 IsolatedStorageFileStream 对象来管理文件内容.

虚拟文件系统根目录是对于每个机器当前登陆用户不同的, 它是一个隐藏的文件夹,存在于物理文件系统中. 每个application的不同标识将会使其映射到不同的文件夹中, 也就是说,将分配给每个不同的application 一个属于它的虚拟文件系统. .NET Framework version 2.0中的文件夹节构和隐藏架构同样在 .NET Framework for Silverlight中也用到了.

var store = IsolatedStorageFile.GetUserStoreForApplication()

store.CreateDirectory("MyApp1");
string subdirectory1 = System.IO.Path.Combine("MyApp1", "SubDir1");
store.CreateDirectory(subdirectory1);
IsolatedStorageFileStream rootFile = store.CreateFile("InTheRoot.txt");
rootFile.Close();

//Write to text file
string filePath = System.IO.Path.Combine(subdirectory1, "MyApp1A.txt");
try
{
   using (StreamWriter sw =
            new StreamWriter(store.OpenFile(filePath,
            FileMode.Open, FileAccess.Write)))
            {
                sw.WriteLine("To do list:");
                sw.WriteLine("1. Buy supplies.");
             }
}
catch (IsolatedStorageException ex)
{

    sb.AppendLine(ex.Message);
}

//Read from text file
try
{
    using (StreamReader reader =
        new StreamReader(store.OpenFile(filePath,
            FileMode.Open, FileAccess.Read)))
    {
        string contents = reader.ReadToEnd();
        sb.AppendLine(filePath + " contents:");
        sb.AppendLine(contents);
    }
}
catch (IsolatedStorageException ex)
{

    sb.AppendLine(ex.Message);
}

使用Application storage存储数据,要使用IsolatedStorageSettings.ApplicationSettings

private IsolatedStorageSettings appSettings = IsolatedStorageSettings.ApplicationSettings;

现在可以用它来读取,修改、删除应用程序配置:

//Add new appSetting
appSettings.Add("email", "alexg@sela.co.il");
//Read appSetting
string mailAddress = (string)appSettings["email"];
//Change existing appSetting
appSettings["email"] = "alex@somemail.com";
//and finally delete it...
appSettings.Remove("email");

关于存储的更详细内容,可参看的

在silverlight中使用IsolateStore隔离存储(上)

在silverlight中使用IsolateStore隔离存储(下)

可以通过代码去调整存储空间的大小,使用的API是IncreaseQuotaTo()函数。

代码如下:

using (var store = IsolatedStorageFile.GetUserStoreForApplication())
{
    // Request 5MB more space in bytes.
    Int64 spaceToAdd = 5242880;
    Int64 curAvail = store.AvailableFreeSpace;  
    // If available space is less than
    // what is requested, try to increase.
    if (curAvail < spaceToAdd)
    {  
        // Request more quota space.
        if (!store.IncreaseQuotaTo(store.Quota + spaceToAdd))
        {
            // The user clicked NO to the
            // host's prompt to approve the quota increase.
            tbResults.Text = "User declined to approve Quota inrease";
        }
        else
        {
            // The user clicked YES to the
            // host's prompt to approve the quota increase.
            tbResults.Text = "Quota inreased";
        }
    }
}

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏杨建荣的学习笔记

最近的几个技术问题总结和答疑(五)(r9笔记第9天)

最近收到了几个朋友的提问,我简单总结了一下。 问题1: 首先是有个朋友问到,单引号,双引号在有些场合通用,有些场合会提示错误。 我做了一个简单的测试,当然只是一...

34050
来自专栏菩提树下的杨过

Enterprise Library 4.1学习笔记7----缓存应用程序块之SqlDependency

本文是在Artech“[原创]Enterprise Library深入解析与灵活应用(2): 通过SqlDependency实现Cache和Database的同...

254100
来自专栏Java帮帮-微信公众号-技术文章全总结

第三十天-加强2-多表查询&JDBC&连接池&DBUtils&综合案例【悟空教程】

第三十天-加强2-多表查询&JDBC&连接池&DBUtils&综合案例【悟空教程】

17540
来自专栏Java编程技术

MySQL中流式查询使用

MySQL 是目前使用比较广泛的关系型数据库,而从数据库里面根据条件查询数据到内存的情况想必大家在日常项目实践中都有使用。

14720
来自专栏.NET开发者社区

一步一步创建ASP.NET MVC5程序[Repository+Autofac+Automapper+SqlSugar](八)

前言 Hi, 大家好,还是星期五,还是Rector,又在图享网准时和大家见面了。 今天给大家带来系列教程《一步一步创建ASP.NET MVC5程序[Reposi...

51760
来自专栏java架构师

SQL Server 高性能写入的一些总结

1.1.1 摘要 在开发过程中,我们不时会遇到系统性能瓶颈问题,而引起这一问题原因可以很多,有可能是代码不够高效、有可能是硬件或网络问题,也有可能是数据库设计的...

446160
来自专栏乐沙弥的世界

Oracle SGA 自动管理特性(sga_target参数)

    最近有网友对Oracle SGA内存自动管理特性不是很清楚,可能是由于当时翻译的 Oracle 10g SGA 的自动化管理 比较生涩,下面依旧是针对这...

10030
来自专栏java架构师

SQL 写入调优

今天看到一篇非常适合本人这种数据库调优小白级别的人学的文章,做个笔记,学习之。 首先建一个用户表: CREATE TABLE [dbo].[jk_users](...

28660
来自专栏冷冷

【jfinal修仙系列】扩展ShiroCacheManager 支持Redis缓存

shiro 内置CacheManager MemoryConstrainedCacheManager (适用于单JVM生产环境的实现) shiroCacheMa...

23270
来自专栏清风

原创哈希数据导出算法 原

16170

扫码关注云+社区

领取腾讯云代金券