我正在尝试将 cXML 字符串反序列化为 C# 类。但是,在反序列化时,除了根元素之外,我似乎无法获得任何东西来反序列化。如何反序列化 XML 文档似乎提供了最多的帮助,并且使用该示例我已经成功地反序列化了根 cXML 标记,但这对嵌套对象不起作用,而嵌套对象PunchOutSetupRequest是我真正需要反序列化的对象。
在向您展示代码墙之前,我的问题是如何在不更改文件的情况下正确地将这些对象反序列化到下面定义的 cXML 类cXML.cs?由于这是一个标准,除非绝对必要,否则我不想编辑它。我的代码是公平游戏。预先感谢您提供的任何帮助,因为我知道这个主题在整个 SO 中已经广泛涉及。
我有一个 cXML 的 XSD 文件,我已使用该xsd.exe工具将其转换为 C# 类。我不会在此处粘贴整个架构,以避免淡化问题,但如果您需要更完整的图片,可以访问cxml.org 。
我的 cXML 代码仅反序列化属性,不包含 cXML 中定义的标头或请求对象:
using (TextReader reader = new StringReader(text))
{
try
{
XmlRootAttribute xRoot = new XmlRootAttribute();
xRoot.ElementName = "cXML";
xRoot.IsNullable = true;
var serializer = new XmlSerializer(typeof(cXML), xRoot);
cxml = (cXML)serializer.Deserialize(reader);
}
catch (Exception ex)
{
string r = "";
}
}
Run Code Online (Sandbox Code Playgroud)
我的反序列化代码PunchOutSetupRequest。 …