日期:2014-05-20  浏览次数:20744 次

求序列化和反序列化进行增删改查的案例
课上完了,但是我只知道序列和反序列的八句话。老师写了一个我认为还有点复杂的窗体,用序列化对窗体内容进行了增删改查。那个我一下子接受不了,只能在这里求援助了。如果你的电脑里刚好有这方面的学习资料传一份给小弟研究研究感激不尽。如果有用xml文件进行增删改查的也帮帮我吧。或者有更好的意见更感激不尽。
  上课的时候我能掌握新知识就很不错了,马上就写不是很简单的程序用上新的旧的知识我真有点吃力,如果不补上这个洞吧,这个洞又越变越大,我晕只能想点办法了。413247812@qq.com 感激。

------解决方案--------------------
简单的可以把 序列化 和反序列化 想象成数据的 写到文件 和读 到内存

读完成后,一般都是list《t》对象,

CRUD面向的都是这个 list《t》对象

------解决方案--------------------
多练习,没有别的好办法
------解决方案--------------------
XML反序列化
C# code

public static T Load<T>(string filePath)
            where T:class
        {
            FileStream fs = null;
            try
            {
                if (!File.Exists(filePath))
                {
                    return null;
                }
                fs = new FileStream(filePath, FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
                var serializater = new XmlSerializer(typeof(T));
                return serializater.Deserialize(fs) as T;
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                if (fs != null)
                {
                    fs.Close();
                }
            }
        }

------解决方案--------------------
XML序列化
C# code

 public static bool Save<T>(T entity,string filePath)
        {
            var success = false;
            FileStream fs = null;
            try
            {
                fs = new FileStream(filePath, FileMode.Create, FileAccess.Write, FileShare.ReadWrite);
                var xmlWriter = new XmlSerializer(typeof(T));
                xmlWriter.Serialize(fs, entity);
                success = true;
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                if (fs != null)
                {
                    fs.Close();
                }
            }
            return success;
        }