protected void Test() { CreateNewQueue("MsgQueue"); //创建一个消息队列 sendSimpleMsg(); //每一个队列最好只发送和接收同一种格式的信息,不然不好转换格式。 receiveSimpleMsg(); // //sendComplexMsg(); //receiveComplexMsg(); MsgModel m = receiveComplexMsg <MsgModel>(); Console.WriteLine(m.ToString()); }
/// <summary> /// 接受复杂消息 /// </summary> public void receiveComplexMsg() { //MessageQueue MQ = new MessageQueue(@".\private$\MsgQueue"); //调用MessageQueue的Receive方法接收消息 if (MQ.GetAllMessages().Length > 0) { System.Messaging.Message message = MQ.Receive(TimeSpan.FromSeconds(5)); if (message != null) { //message.Formatter = new System.Messaging.XmlMessageFormatter(new Type[] { typeof(MsgModel) });//消息类型转换 message.Formatter = new BinaryMessageFormatter(); MsgModel msg = (MsgModel)message.Body; Console.WriteLine(string.Format("接收消息成功,lable:{0},body:{1},{2}", message.Label, msg, DateTime.Now)); } } else { Console.WriteLine("没有消息了!"); } }