【发布时间】:2016-01-27 16:33:14
【问题描述】:
我有 2 种不同格式的 xml 文件需要使用 C# 进行序列化和反序列化。
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 消息队列方案中使用。
谢谢, 比诺德
【问题讨论】:
标签: c# xml serialization xml-serialization xml-deserialization