从XMLSerializer到XElement [英] XMLSerializer to XElement
问题描述
我一直在使用数据库LINQ中的XML,发现使用序列化程序非常困难.
I have been working with XML in database LINQ and find that it is very difficult to work with the serializer.
数据库LINQ需要一个存储XElement
的字段.
The database LINQ required a field that store XElement
.
我有一个带有许多自定义结构类的复杂对象,因此我想使用XmlSerializer序列化该对象.
I have a complex object with many customized structure class, so I would like to use the XmlSerializer to serialize the object.
但是,序列化程序只能序列化为文件("C:\ xxx \ xxx.xml")或内存流.
However, the serializer can only serialize to file ("C:\xxx\xxx.xml") or a memory stream.
但是如何将其转换或序列化为XElement,以便我可以使用LINQ存储在数据库中?
However to convert or serialize it to be a XElement so that I can store in the database using LINQ?
然后如何做相反的事情?即反序列化XElement ...
And How to do the reverse? i.e. Deserialize an XElement...
推荐答案
尝试使用此
using (var stream = new MemoryStream())
{
serializer.Serialize(stream, value);
stream.Position = 0;
using (XmlReader reader = XmlReader.Create(stream))
{
XElement element = XElement.Load(reader);
}
}
反序列化:
XmlSerializer xs = new XmlSerializer(typeof(XElement));
using (MemoryStream ms = new MemoryStream())
{
xs.Serialize(ms, xml);
ms.Position = 0;
xs = new XmlSerializer(typeof(YourType));
object obj = xs.Deserialize(ms);
}
这篇关于从XMLSerializer到XElement的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!