请教:winform下如何将一个xml文件缓存到内存中 看过一些网上介绍的winform缓存类,但是缓存的都是string。现有一程序,很多配置都是利用xml实现的。为了提高程序运行效率,希望将xml缓存到内存中,需要时直接从内存读取(该程序中此类操作相当频繁),求助哪位朋友有这样的类给参考一下。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 保存到内存中就可以啊,保存到全局变量也可以,保存到Form的成员变量也可以,或者AppDomain.CurrentDomain.SetData/GetData也可以,看你打算让这个“缓存”存活多久和它的作用范围。 DataSet可以看作数据表在程序中的缓存xml转dataset LOAD()之后自然就加载到内存了,可以通过相应的操作进行处理。 可以把XMl文件读到DataSet类的对象中去,具体代码为:DataSet ds=new DataSet();ds.ReadXMl(XMlfilePath);//将指定路径下的具有xml架构的文件读到内存的一张表中,即ds;//此方法有八种重载形式,看楼主用哪种了。 详细可参考:基于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(); } 关于继承 ComboBox,添加 ListBox控件,使其支持拼音自动提示功能,所遇到的问题! SendMessage 发送按钮点击事件 按钮没响应 用datatable制作产品订购单录入界面,如何根据代码从数据库自动获取名称的值? 请教大家一个关于线程的问题 变量 与 控件 之间 如何操作? 急急急!!!关于消息提示问题 请问在c#中关闭浏览器窗口的命令是什么? 水晶报表为什么PrintMode改为Activex后不能打印? 如何从上到下更新ListBox readfile失败! C#分页及打印 求那位大哥帮帮忙
保存到全局变量也可以,保存到Form的成员变量也可以,或者AppDomain.CurrentDomain.SetData/GetData也可以,看你打算让这个“缓存”存活多久和它的作用范围。
xml转dataset
DataSet ds=new DataSet();
ds.ReadXMl(XMlfilePath);//将指定路径下的具有xml架构的文件读到内存的一张表中,即ds;
//此方法有八种重载形式,看楼主用哪种了。
/// <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(); }