1、将数据保存为XML文件,需要时读取这个XML文件,分析里面的数据,然后存入到NameValueCollection中;2、将NameValueCollection数据直接序列化后保存为文件,需要时读取这个文件,然后反序列化为NameValueCollection这两个相比,相同的数据情况下,哪个快些?谢谢!
我就是想知道序列化和反序列化操作的效率问题,是否耗时?

解决方案 »

  1.   

    1、分析XML文件就是
    foreach (XmlNode node in doc.SelectSingleNode("root").ChildNodes)
    {
       if (node.NodeType != XmlNodeType.Comment)
       {
          colPhrases[node.Attributes["name"].Value] = node.InnerText;
       }
    }
    2、反序列化就是直接将文件的内容通过反序列化恢复成NameValueCollection呀。
      

  2.   

    你的分析只针对文本型的属性,当然“快”。可惜实用性不够好。假设数据的类型是自定义类型,或者其它asp.net中已经可以序列化的几百个类型,它们的实例不仅仅只有一个value属性,肯定还有很多其他属性或者字段,这些属性或者字段又是另一种可以序列化的类型。我想了一下我用过和做过的大多数类,能够用你的方法“分析”的寥寥无几。
      

  3.   

    哦,上面搭打字太快了可能有点偏差。我知道你不是仅仅处理一个value,而是处理所有属性。但是属性有很多类型,包括属性也可能是另外一种复杂的结构类型而不是简单类型。最关键的是,你没有恢复对象原有的真实的属性类型。
      

  4.   

    既然不需要复用就简单了,可以随意地实现。比如用字符串的Split“分析”绝对比你的快上数被。
      

  5.   

    sp1234() 没懂我的意思,我的就是取
    colPhrases[node.Attributes["name"].Value] = node.InnerText;
    没有其它的属性