c# - XMLSerializer 到 XElement

标签 c# .net xml linq serialization

我一直在数据库 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/

相关文章:

c# - 将 .exe 打包成 .vsix 并从 Visual Studio 扩展中调用

c# - 如何在根节点 [TreeView] 找到子节点

c# - 使用现有API的.Net中事件的线程上下文是什么?

.net - HTTP 方法 GET、POST、PUT 和 DELETE 之间有什么区别

php - 当其中已经有内容时,如何获取 xml 标签的内部文本?

c# - 从 Orchard CMS 的仪表板添加数据记录

c# - 如何禁用 EF 代码优先中链接表的级联删除?

c# - .NET 配置类保存问题

android - 在 android XML 中使用相对布局

xml - 如何在t-sql中连接peer节点的值