我有2種不同格式的需要使用C#序列化和反序列化的xml文件。用於不同xml文件的XML序列化器和反序列化器類
XML文件 類型1:
<?xml version="1.0"?>
<tms_msg>
<transaction>
<message_string>Left Over</message_string>
</transaction>
</tms_msg>
類型2:
<?xml version="1.0"?>
<tms_msg>
<transaction>
<message_string>
<utc_date_time>0001-01-01T00:00:00</utc_date_time>
<utctime>000000</utctime>
<latitude/>
<latitude_hemi/>
<longitude/>
<longitude_hemi/>
<speed/>
<heading>000</heading>
</message_string>
</transaction>
</tms_msg>
哪能序列化和反序列化兩個不同的XML文件? 我需要一個可以對這些xml文件進行序列化和反序列化的類。
//更新的代碼
public class MessageReceiver
{
private MessageQueue _queue;
private readonly string _queueName;
public MessageReceiver()
{
this._queueName = @".\Private$\to_dispatch";
}
public void StartRead()
{
_queue = new MessageQueue(_queueName);
_queue.PeekCompleted += QueuePeekCompleted;
}
private void QueuePeekCompleted(object sender, PeekCompletedEventArgs e)
{
var message = _queue.EndPeek(e.AsyncResult);
message.Formatter = new XmlMessageFormatter(new Type[] { typeof(tms_msg) });
Console.WriteLine(string.Format("The message was: {0}", message.Id));
var m = message.Body;
Console.WriteLine(string.Format("The QueuePeek is completed message was: {0}", message.Id));
}
public override string ToString()
{
return _queueName;
}
}
我使用的MSMQ消息隊列的情況。
感謝, Binod
這是MSMQ的典型場景。我添加了要使用xmlformatter的類MessageReceiver。請找到更新的代碼。我無法檢查xml節點類型。 – Binod
也許別人可能想要現在幫你。如果您在*原創*問題本身提供了適當的信息/背景,我不會在其他方面進行。 – niksofteng