代码如下:
/// <summary>
        /// 获取系统配置信息
        /// </summary>
        /// <returns></returns>
        public static GeneralInfo GetConfig()
        {
            GeneralInfo info=new GeneralInfo();
            if (!CacheHelper.Exists(generalKey))
            {
                lock (lockOjbect)
                {
                    object source = XmlHelper.DeSerializer(generalPath, info.GetType());
                    CacheHelper.AddCache(generalKey, source, generalPath);
                }
            }
            return (GeneralInfo)CacheHelper.GetCache(generalKey);
        }DeSerializer方法:
        /// <summary>
        /// 反序列化xml至实体类
        /// </summary>
        /// <param name="path">xml路径</param>
        /// <param name="type">实体类型</param>
        /// <returns></returns>
        public static object DeSerializer(string path, Type type)
        {
            XmlSerializer xs = new XmlSerializer(type);
            FileStream fs = new FileStream(path, FileMode.Open);
            object obj = xs.Deserialize(fs);
            fs.Close();
            return obj;        }实体内的参数也就15个。。但在首次运行时。反序列化该xml文件要用上5秒左右。这个速度实在无法忍受。请问该如何提高?

解决方案 »

  1.   

    BinaryFormatter bf = new BinaryFormatter();
    System.IO.Stream stream = new MemoryStream();
    bf.Serialize(stream, obj);  byte[] array = null;array = new byte[stream.Length];//将二进制流写入数组stream.Position = 0;stream.Read(array, 0, (int)stream.Length);//关闭流stream.Close();
      

  2.   

    因为加入了cache,所以第二次基本上不用等待。我本机测试的.
    这个5秒我想有4秒钟是耗在了这个反序列化上。