看过一些网上介绍的winform缓存类,但是缓存的都是string。现有一程序,很多配置都是利用xml实现的。为了提高程序运行效率,希望将xml缓存到内存中,需要时直接从内存读取(该程序中此类操作相当频繁),求助哪位朋友有这样的类给参考一下。

解决方案 »

  1.   

    保存到内存中就可以啊,
    保存到全局变量也可以,保存到Form的成员变量也可以,或者AppDomain.CurrentDomain.SetData/GetData也可以,看你打算让这个“缓存”存活多久和它的作用范围。
      

  2.   

    DataSet可以看作数据表在程序中的缓存
    xml转dataset
      

  3.   

    LOAD()之后自然就加载到内存了,可以通过相应的操作进行处理。
      

  4.   

    可以把XMl文件读到DataSet类的对象中去,具体代码为:
    DataSet ds=new DataSet();
    ds.ReadXMl(XMlfilePath);//将指定路径下的具有xml架构的文件读到内存的一张表中,即ds;
    //此方法有八种重载形式,看楼主用哪种了。
      

  5.   

    详细可参考:基于xml的多语言实现http://blog.csdn.net/dunao/archive/2010/10/28/5972927.aspxprivate XmlDocument _xDoc = new XmlDocument(); 
    /// <summary>
            /// 加载字符串xml文件Language use only
            /// </summary>
            /// <param name="xmlFileContent">是否加载文档的内容</param>
            public Settings(string fileName, bool isLoadFileContent, string key)
            {
                FileStream fs = File.Open(Application.StartupPath + "\\" + fileName, FileMode.Open);
                using (StreamReader sr = new StreamReader(fs))
                {
                    string xmlContent = sr.ReadToEnd();
                    if (isLoadFileContent)
                    {
                        xmlContent = CraxyMouse.Interface.Utility.DecryptDES(xmlContent, key);
                    }
                    _xDoc.LoadXml(xmlContent);
                }
                fs.Close();        }