次の 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();
オブジェクトを逆シリアル化するためのクラスを作成するのを手伝ってもらえますか?
私は次のクラスを試しました:
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 が null です。
逆シリアル化しようとしているオブジェクトが適切に構築されていないように感じます。誰かがオブジェクトの構築を手伝ってくれませんか?