我想将以下 XML 反序列化为 C# 中的对象类:
<?xml version="1.0" encoding="UTF-8"?>
<ern:NewReleaseMessage xmlns:ern="http://ddex.net/xml/2010/ern-main/32"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
LanguageAndScriptCode="en"
xsi:schemaLocation="http://ddex.net/xml/2010/ern-main/32 http://ddex.net/xml/2010/ern-main/32/ern-main.xsd"
MessageSchemaVersionId="2010/ern-main/32">
<MessageHeader>
<MessageThreadId>PADPID</MessageThreadId>
<MessageId>PADPIDA</MessageId>
<MessageSender>
<PartyId>PADPIDA</PartyId>
<PartyName>
<FullName>Tes co</FullName>
</PartyName>
</MessageSender>
<SentOnBehalfOf>
<PartyId>PADPIDA</PartyId>
<PartyName>
<FullName>Bp</FullName>
</PartyName>
</SentOnBehalfOf>
<MessageRecipient>
<PartyId>PADPIDA</PartyId>
<PartyName>
<FullName>Testo</FullName>
</PartyName>
</MessageRecipient>
<MessageCreatedDateTime>2012-10-31T19:26:05Z</MessageCreatedDateTime>
<!-- Message type ern:NewReleaseMessage -->
<!-- Message version 20110307 -->
<!-- Generated using code version 2012102902 -->
</MessageHeader>
</ern:NewReleaseMessage>
这是我可能反序列化为名为 NewReleaseMessage 的对象的代码:
var xmlstream = new FileStream(ConfigurationManager.AppSettings["xmlfilepath"],FileMode.Open,FileAccess.Read);
var dcs = new XmlSerializer(typeof(NewReleaseMessage));
var loadfile = (NewReleaseMessage)dcs.Deserialize(xmlstream);
xmlstream.Close();
somoene 可以帮我创建类来反序列化对象吗?
我尝试了以下课程:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Runtime.Serialization;
using System.Xml;
using System.Xml.Serialization;
//using System.Runtime.Serializa
namespace Ddexcoverter2
{
[Serializable]
[XmlRoot(ElementName = "NewReleaseMessage" , Namespace = "http://ddex.net/xml/2010/ern-main/32")]
public class NewReleaseMessage
{
[XmlElement]
public MessageHeader MessageHeader { get; set; }
}
[Serializable]
public class MessageHeader
{
[XmlElement]
public string MessageThreadId { get; set; }
[XmlElement]
public string MessageId { get; set; }
[XmlElement]
public MessageSender Sender { get; set; }
}
[Serializable]
public class MessageSender
{
[XmlElement]
public string PartyId { get; set; }
}
}
当我尝试运行程序时,对象 NewReleaseMessage 为空。
我有一种感觉,我试图反序列化的对象构造不正确。有人可以帮我构造对象吗?