public void Send(Model.UserRegister register)
 {
     // This method does not involve in distributed transaction and optimizes performance using Single type
     //MessageQueue queue = new MessageQueue(queuePath);
     //base.transactionType = MessageQueueTransactionType.Single;
     //queue.Send(register, base.transactionType);
     base.transactionType = MessageQueueTransactionType.Single;
     base.Send(register);
 }
        public bool Send(UserGroup group, UserLogin login, User user, Model.UserRegister register)
        {
            //发送消息
            //连接到本地的队列
            MessageQueue            myQueue = new MessageQueue(queuePath);
            MessageQueueTransaction trans   = new MessageQueueTransaction();

            try
            {
                if (myQueue.Transactional)
                {
                    trans.Begin();
                }
                Message myMessage1 = new Message(group);
                myMessage1.AdministrationQueue = myQueue;
                myMessage1.AcknowledgeType     = AcknowledgeTypes.PositiveReceive | AcknowledgeTypes.PositiveArrival;
                myMessage1.Formatter           = new XmlMessageFormatter(new Type[] { typeof(UserGroup) });
                myMessage1.Priority            = MessagePriority.Highest;
                myQueue.Send(myMessage1, trans);

                Message myMessage2 = new Message(login);
                myMessage2.Priority  = MessagePriority.Highest;
                myMessage2.Formatter = new XmlMessageFormatter(new Type[] { typeof(UserLogin) });
                myQueue.Send(myMessage2, trans);

                Message myMessage3 = new Message(user);
                myMessage3.Priority  = MessagePriority.Highest;
                myMessage3.Formatter = new XmlMessageFormatter(new Type[] { typeof(User) });
                myQueue.Send(myMessage3, trans);

                Message myMessage4 = new Message(register);
                myMessage4.Priority  = MessagePriority.Highest;
                myMessage4.Formatter = new XmlMessageFormatter(new Type[] { typeof(MsmqUserRegister) });
                myQueue.Send(myMessage4, trans);
                if (myQueue.Transactional)
                {
                    trans.Commit();
                }
                return(true);
            }
            catch (ArgumentException e)
            {
                // 如果消息队列采用了事务并且出现了异常,则终止事务
                if (myQueue.Transactional)
                {
                    trans.Abort();
                }
                return(false);
            }
        }