• Silverlight 使用IsolatedStorage新建XML文件,并且用LINQ查询XML


    代码
    
    Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->using System;
    using System.Linq;
    using System.Windows.Shapes;
    using System.Collections.Generic;
    using System.Collections.ObjectModel;
    using System.IO.IsolatedStorage;
    using System.IO;
    using System.Xml.Linq;
    using System.Xml;
    namespace ServiceFacade
    {
    
        public class FResourceCategoryCode
        {
           readonly string strFileName = "ResourceCategoryCode.xml";
            List<FResourceCategoryCodeModel> lfrccs = new List<FResourceCategoryCodeModel>();
    /// <summary>
    /// 生成XML缓存文件
    /// </summary>
    public void CreateFile(List<FResourceCategoryCodeModel> lfrccm)
    {
    try
    {
    using (IsolatedStorageFile isoStore =
    IsolatedStorageFile.GetUserStoreForApplication())
    {
    using (IsolatedStorageFileStream isoStream =
    new IsolatedStorageFileStream(strFileName,
    FileMode.Create, isoStore))
    {
    // 根据每个用户存储一个信息
    XmlWriterSettings settings = new XmlWriterSettings();
    settings.Indent = true;
    // 创建一个XmlWriter.
    using (XmlWriter writer = XmlWriter.Create(isoStream, settings))
    {
    //设置XML的根
    writer.WriteStartElement("ResourceCategorys");
    foreach (var v in lfrccm)
    {
    //设置每个元素的根
    writer.WriteStartElement("ResourceCategory");
    
    //以下为设置每个元素及值
    writer.WriteStartElement("cncCategroyStandard");
    writer.WriteString(v.CncCategroyStandard);
    writer.WriteEndElement();
    
    writer.WriteStartElement("cnvcCategoryCode");
    writer.WriteString(v.CnvcCategoryCode);
    writer.WriteEndElement();
    
    writer.WriteStartElement("cnvcCategoryName");
    writer.WriteString(v.CnvcCategoryName);
    writer.WriteEndElement();
    
    writer.WriteStartElement("cniLevel");
    writer.WriteString(Convert.ToString(v.CniLevel));
    writer.WriteEndElement();
    
    writer.WriteStartElement("cnvcParentCode");
    writer.WriteString(v.CnvcParentCode);
    writer.WriteEndElement();
    
    writer.WriteStartElement("cniOrderID");
    writer.WriteString(Convert.ToString(v.CniOrderID));
    writer.WriteEndElement();
    
    //XML结束标记
    writer.WriteEndElement();
    }
    //XML根结束标记
    writer.WriteEndElement();
    writer.Flush();
    }
    }
    }
    }
    catch
    {
    ;
    }
    }
    
    /// <summary>
            /// 读取缓存文件
            /// </summary>
            private void ReadXml()
            {
                using (IsolatedStorageFile store =
                         IsolatedStorageFile.GetUserStoreForApplication())
                {
                    //读取文件并把文件转化为StreamReader
                    StreamReader reader = new StreamReader(store.OpenFile(strFileName,
                       FileMode.Open, FileAccess.Read));
                    //把字符串转化为XML
                    XDocument xmlStory = XDocument.Parse(reader.ReadToEnd());
                    //利用LINQ TO XML转化为集合
                   var varDetails = from details in xmlStory.Descendants("ResourceCategory")  //只取得节点为ResourceCategory的信息
                                     select new FResourceCategoryCodeModel
                                     {
                                         CncCategroyStandard = (string)details.Element("cncCategroyStandard"),
                                         CnvcCategoryCode = (string)details.Element("cnvcCategoryCode"),
                                         CnvcCategoryName = (string)details.Element("cnvcCategoryName"),
                                         CniLevel = (int)details.Element("cniLevel"),
                                         CniOrderID = (int)details.Element("cniOrderID"),
                                         CnvcParentCode = (string)details.Element("cnvcParentCode")
                                     };
                    lfrccs = varDetails.ToList<FResourceCategoryCodeModel>();
                    store.Dispose();
                }
            }
    
    /// <summary>
            /// 实体类
            /// </summary>
      public class FResourceCategoryCodeModel
        {
            private int _cniCategroyID;
            /// <summary>
            /// 流水号
            /// </summary>
            public int CniCategroyID
            {
                get { return _cniCategroyID; }
                set { _cniCategroyID = value; }
            }
            private string _cncCategroyStandard;
            /// <summary>
            /// 标准分类编码
            /// </summary>
            public string CncCategroyStandard
            {
                get { return _cncCategroyStandard; }
                set { _cncCategroyStandard = value; }
            }
            private string _cnvcCategoryCode;
            /// <summary>
            /// 资源分类编码
            /// </summary>
            public string CnvcCategoryCode
            {
                get { return _cnvcCategoryCode; }
                set { _cnvcCategoryCode = value; }
            }
            private string _cnvcCategoryName;
            /// <summary>
            /// 资源分类名称
            /// </summary>
            public string CnvcCategoryName
            {
                get { return _cnvcCategoryName; }
                set { _cnvcCategoryName = value; }
            }
            private int _cniLevel;
            /// <summary>
            /// 资源分类层级
            /// </summary>
            public int CniLevel
            {
                get { return _cniLevel; }
                set { _cniLevel = value; }
            }
            private string _cnvcParentCode;
            /// <summary>
            /// 资源分类父级代码
            /// </summary>
            public string CnvcParentCode
            {
                get { return _cnvcParentCode; }
                set { _cnvcParentCode = value; }
            }
            private int _cniOrderID;
            /// <summary>
            /// 排序ID
            /// </summary>
            public int CniOrderID
            {
                get { return _cniOrderID; }
                set { _cniOrderID = value; }
            }
            private string _cnvcRemark;
            /// <summary>
            /// 说明文字
            /// </summary>
            public string CnvcRemark
            {
                get { return _cnvcRemark; }
                set { _cnvcRemark = value; }
            }
    }
    }
    }

    然后通过调用方法CreateFile和ReadXml就可以实现了,文件存放的地址是SL的独立空间,在XP系统下的存放地址为C:Documents and Settings用户名Local SettingsApplication DataMicrosoftSilverlight目录下,可以找到很多缓存文件

    文章转自:http://www.cnblogs.com/888h/archive/2010/10/20/1856407.html

  • 相关阅读:
    iframe嵌入页面自适应目标页面的高度
    pc端适配
    页面之间传值,接数值
    表单直传文件到七牛
    前端一些小技巧
    css3的一些知识点
    禁止用户长按选中
    修改Html的title值
    判断时间是多久前
    图片裁剪
  • 原文地址:https://www.cnblogs.com/zxbzl/p/3875962.html
Copyright © 2020-2023  润新知