我有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