如何使用Linq to SQL将对象序列化并将对象保存为Xml

Raj*_*Raj 6 c# xml-serialization linq-to-sql

我正在使用FileStream将对象序列化为Xml并保存到磁盘

Stream str = new FileStream(@"serializedstate.xml", FileMode.OpenOrCreate)
XmlSerializer x = new XmlSerializer(typeof(GridState));
x.Serialize(str, new GridState
        {
            GridName= txtGridName.Text,
            GridColumns = GetGridColumnStates()
        });
Run Code Online (Sandbox Code Playgroud)

这工作正常,并在磁盘上生成Xml文件.如何使用Linq to SQL将序列化的对象作为Xml保存到Sql Server 2008数据库的XML列中?以及如何从数据库反序列化相同的内容?

小智 7

序列化为XElement

        XmlSerializer x = new XmlSerializer(typeof(GridState));
        XDocument doc = new XDocument();

        using (XmlWriter xw = doc.CreateWriter())
        {
            x.Serialize(xw, new GridState
                {
                    GridName= txtGridName.Text,
                    GridColumns = GetGridColumnStates()
                });
            xw.Close();
        }

        XElement el = doc.Root;
Run Code Online (Sandbox Code Playgroud)

反序列化

        using (XmlReader xr = el.CreateReader())
        {
            GridState myDeserializedObject = x.Deserialize(xr) as GridState;
            xr.Close();
        }
Run Code Online (Sandbox Code Playgroud)