应存储的局域网管理工具数据在Storage文件夹的单独类中定义。这样就定义串行化需要的特性,独立于把它们绑定到UI元素的类。为了串行化对象,串行化器和数据协定串行化器必须可用于Windows8应用程序。串行化使用局域网管理工具数据协定完成,所有Data Contract和Data Member特性应用与MenuCardData类(代码文件Menu Card/Storage/MenuCardData.cs)。在这个类中,只为串行化定义了简单的属性Title、Description、ImagePath和一个MenuItemData集合。该类还实现一个接受Menu Card作为参数的构造函数,以及返回Menu Card的ToMenuCard方法,以便转换为Menu Card类,或从Menu Card类转换。
现在可以创建一个写入Menu Card对象的方法了。应用程序可以在一些预定义的文件夹中写入数据。这些文件夹可以用Application Data类访问。ApplicationData Current返回Application Data单态对象的一个实例。之后就可以访问Local Folder和RoamingFolder。LocalFolder属性会返回针对应用程序的文件夹,该文件夹仅在本地系统上可用;RoamingFolder返回一个文件夹,在本地写入数据后,该文件夹中的数据写入一个云服务中,用户在每个使用相同活动账户的系统上都可以访问这些数据。
示例应用程序使用移动文件夹,这样用户就可以在所有的Windows8系统上使用这些数据了。WriteMenuCardAsync方法(代码文件Storage/MenuCardStorage)通过参数menu Card接收一个Menu Card,访问第一行上的移动文件夹。接着确定Menu Card对象自从一次写入一来是否有变化。每次属性改变时,MenuCard的改动(dirty)标记都会变化。在Storage Folder上调用CreateFileAsyne方法,创建一个文件,文件名包含菜单卡的标题。CreateFileAsync方法的第二个参数可以指定,如果文件存在,会发生什么。可能的选项有抛出异常或打开已有文件。这里是仅覆盖已有文件。接着把打开的文件盒菜单卡传递给方法WriteMenuCardToFileAsync。
WriteMenuCardToFileAsync方法最终在数据协定串行化器的帮助下写入数据。StorageFile类提供的几个方法会返回数据流,以读写数据——例如,OpenAsync返回一个IRandomAccessStream,Open Transacted sync返回一个StorageStreamTransaction。这些数据流都是Windows Runtime数据流。对于数据协定串行化,需要一个NET数据流。从这个方法返回的数据流获取Memory Stream的一个副本,该副本在前面用DataContractSerializer填充了。
现在,只需要连接代码,以便用UI保存菜单卡。保存操作的一个时间点是在AddMenuCardPage中创建新菜单卡时。退出页面(例如单击后退按钮)时,会调用Save State方法(代码文件Menu Card/AddMenuCardPage)。在OnNavigatedFrom方法中,SaveState由基类LayoutAwarePage类在退出页面时调用。在这里的实现代码中,从绑定到UI的信息中创建一个新的Menu Card,再调用WriteMenuCardsAsyns,将所有改动了的菜单卡写入移动存储器。
要读取菜单卡,使用ReadMenuCardsAsync方法(代码文件Menu Card/Storage/Menu Cards Storage’s)从应用程序的移动文件夹中读取所有菜单卡文件,填充Menu Card对象,再返回一个列表。在读取所有文件之前,先从移动文件夹中创建一组XML文件。StorageFolder类中的CreateFileQuery方法可以定义一个查询,来搜索文件。这里定义的查询指定不使用索引器,只是读取这个目录,不读取子目录,来搜索XML文件。通过Query Options类也可以使用关键字和属性,利用Advanced Query Syntax搜索文件。从查询中返回的文件使用一个从扩展方法OpenStreamForReadAsync中返回的NET数据流来读取,接着,使用数据协定串行化器执行反串行化。
Store State方法用于写入应用程序状态,而Load State方法用于读取应用程序状态。下面的代码展示了Main Page中的Load State方法,这个方法在导航到页面时调用。这里调用ReadMenuCardsAsyne方法,以获得Menu Card对象集合。这个集合放在Observable Collection中,再放在视图模型中,将菜单卡用于与UI绑定的数据。
★关于WorkWin公司电脑监控软件★
WorkWin的使命是打造Work用途的Windows 电脑系统,有效规范员工上网行为,让老板知道员工每天在做什么(监控包括屏幕、上网在内的一举一动),限制员工不能做什么(禁止网购、游戏、优盘等)。
WorkWin基于纯软件设计,非常容易使用,无需添加或改动任何硬件,使用一台管理机监控全部员工机电脑。历经南京网亚十余年精心打造,此时此刻每天都有成千上万企业电脑正在运行WorkWin,选择WorkWin选择“赢”。
版权所有,南京网亚计算机有限公司 。本文链接地址: 局域网管理工具定义数据协定