首页 > 解决方案 > .net 使用动态类型反序列化 xml

问题描述

在使用 .net 反序列化 xml 文件时遇到问题。我有一堆 xml 文件,并希望将它们反序列化为从 XSD 生成的匹配类。

但我不知道,这些 XML 文件中的哪些包含来自哪个类的序列化对象:

<?xml version='1.0' encoding='UTF-8'?>
<foo xmlns="http://foo" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://foo">
</foo>

根据 c# 类看起来像这样:

[System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.7.3081.0")]
[System.SerializableAttribute()]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
[System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://Foo")]
[System.Xml.Serialization.XmlRootAttribute(Namespace="http://foo", IsNullable=false)]
public partial class Foo {
}

我想在运行时确定 XML 类型。有没有办法做到这一点?(除了检查根元素并自己确定正确的类型)

在此先感谢您的帮助!

标签: c#.netxmldeserialization

解决方案


推荐阅读