/// <summary>
        /// The send object.
        /// </summary>
        /// <param name="session">
        /// The session.
        /// </param>
        /// <param name="t">
        /// The t.
        /// </param>
        /// <typeparam name="T">
        /// </typeparam>
        private static void SendObject <T>(ISession session, T t, string queueName)
        {
            //4.消息的目的地:destination
            IDestination dest = session.GetQueue(queueName);

            log.DebugFormat("ActiveMQ创建: {0}", dest.ToString());

            //5.创建用于发送消息的对象(设置其持久模式)
            using (IMessageProducer producer = session.CreateProducer(dest))
            {
                log.DebugFormat("ActiveMQ创建: {0}", producer.ToString());
                var objectMessage = producer.CreateObjectMessage(t);

                producer.Send(objectMessage);
                log.DebugFormat("ActiveMQ已发送: {0}", objectMessage.ToString());
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// The send object.
        /// </summary>
        /// <param name="session">
        /// The session.
        /// </param>
        /// <param name="t">
        /// The t.
        /// </param>
        /// <typeparam name="T">
        /// </typeparam>
        private static void SendObject <T>(ISession session, T t, string queueName, string selector)
        {
            //4.消息的目的地:destination
            IDestination dest = session.GetQueue(queueName);

            log.DebugFormat("ActiveMQ创建: {0}", dest.ToString());

            //5.创建用于发送消息的对象(设置其持久模式)
            using (IMessageProducer producer = session.CreateProducer(dest))
            {
                log.DebugFormat("ActiveMQ创建: {0}", producer.ToString());
                var objectMessage = producer.CreateObjectMessage(t);
                if (!string.IsNullOrEmpty(selector))
                {
                    var arr = selector.Split('=');
                    if (!arr.IsNullOrEmpty() && arr.Length == 2)
                    {
                        objectMessage.Properties.SetString(arr[0], arr[1].Replace("'", "").Replace("'", ""));
                    }
                }
                producer.Send(objectMessage);
                log.DebugFormat("ActiveMQ已发送: {0}", objectMessage.ToString());
            }
        }