我一直在数据库 LINQ 中使用 XML,发现使用序列化程序非常困难。
数据库 LINQ 需要一个存储 XElement
的字段。
我有一个包含许多自定义结构类的复杂对象,所以我想使用 XmlSerializer 来序列化该对象。
但是,序列化器只能序列化到文件(“C:\xxx\xxx.xml”)或内存流。
但是要将它转换或序列化为 XElement 以便我可以使用 LINQ 将其存储在数据库中吗?
以及如何做相反的事情?即反序列化一个 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);
}
关于c# - XMLSerializer 到 XElement,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7913798/