必须填写至少10个字的日志
nnhy 编写于 2012-07-27 18:48:21
X
//using System;
//using System.Collections.Generic;
//using System.Text;
//using NewLife.Messaging;
//using System.IO;
//using System.Threading;
//using System.Reflection;

//namespace NewLife.Remoting
//{
//    /// <summary>
//    /// 远程调用消息处理器
//    /// </summary>
//    public class RemotingMessageHandler : MessageHandler
//    {
//        #region 构造
//        /// <summary>
//        /// 静态构造函数
//        /// </summary>
//        static RemotingMessageHandler()
//        {
//            Init();
//        }

//        private static Int32 _Inited = 0;
//        /// <summary>
//        /// 初始化,用于注册所有消息
//        /// </summary>
//        public static void Init()
//        {
//            // 只执行一次,防止多线程冲突
//            if (Interlocked.CompareExchange(ref _Inited, 1, 0) != 0) return;

//            // 注册每一条消息的处理器
//            RemotingMessageHandler handler = new RemotingMessageHandler();
//            foreach (RemotingMessageType item in Enum.GetValues(typeof(RemotingMessageType)))
//            {
//                MessageHandler.Register((Int32)item, handler, false);
//            }
//        }
//        #endregion

//        /// <summary>
//        /// 建立消息
//        /// </summary>
//        /// <param name="messageID"></param>
//        /// <returns></returns>
//        public override Message Create(int messageID)
//        {
//            if (!Enum.IsDefined(typeof(RemotingMessageType), messageID)) return null;

//            RemotingMessageType rmt = (RemotingMessageType)messageID;
//            RemotingMessage message = null;
//            switch (rmt)
//            {
//                case RemotingMessageType.Method:
//                    message = new MethodMessage();
//                    break;
//                case RemotingMessageType.Entity:
//                    message = new EntityMessage();
//                    break;
//                default:
//                    break;
//            }
//            return message;
//        }

//        /// <summary>
//        /// 处理消息
//        /// </summary>
//        /// <param name="message"></param>
//        /// <param name="stream"></param>
//        /// <returns></returns>
//        public override Stream Process(Message message, Stream stream)
//        {
//            RemotingMessage rm = message as RemotingMessage;
//            if (rm != null) ProcessRemoting(rm, stream);
//            return stream;
//        }

//        void ProcessRemoting(RemotingMessage message, Stream stream)
//        {
//            switch (message.MessageType)
//            {
//                case RemotingMessageType.Method:
//                    ProcessMethod(message as MethodMessage, stream);
//                    break;
//                case RemotingMessageType.Entity:
//                    ProcessEntity(message as EntityMessage, stream);
//                    break;
//                default:
//                    break;
//            }
//        }

//        void ProcessMethod(MethodMessage message, Stream stream)
//        {

//        }

//        void ProcessEntity(EntityMessage message, Stream stream)
//        {
//            BinaryWriter writer = new BinaryWriter(stream);
//            String str = String.Format("你要请求的实体是:[{0}]{1}", message.EntityType, message.Entity);
//            writer.Write(str);
//        }
//    }
//}