阅读量:0
在C#中实现MSMQ的序列化和反序列化可以通过使用BinaryFormatter进行序列化和反序列化操作。以下是一个简单的示例代码:
using System; using System.Messaging; using System.IO; using System.Runtime.Serialization.Formatters.Binary; namespace MSMQSerialization { public class MessageObject { public string Message { get; set; } } class Program { static void Main(string[] args) { MessageObject messageObj = new MessageObject(); messageObj.Message = "Hello MSMQ!"; // 序列化消息对象 BinaryFormatter formatter = new BinaryFormatter(); MemoryStream stream = new MemoryStream(); formatter.Serialize(stream, messageObj); // 发送消息到MSMQ队列 MessageQueue queue = new MessageQueue(@".\Private$\MyQueue"); Message message = new Message(); message.BodyStream = stream; queue.Send(message); // 从MSMQ队列接收消息并反序列化 Message receivedMessage = queue.Receive(); receivedMessage.BodyStream.Position = 0; MessageObject receivedObj = (MessageObject)formatter.Deserialize(receivedMessage.BodyStream); Console.WriteLine("Received message: " + receivedObj.Message); queue.Close(); } } }
在这个示例中,我们首先创建了一个MessageObject类来存储消息内容。然后我们使用BinaryFormatter来序列化MessageObject对象,并将序列化后的数据发送到MSMQ队列。接着从队列中接收消息,并通过反序列化操作将消息内容提取出来并打印出来。
请注意,这里的示例只是一个简单的示例,实际生产环境中可能需要更复杂的消息对象和处理逻辑。