从XMLSerializer到XElement [英] XMLSerializer to XElement

查看:127
本文介绍了从XMLSerializer到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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆