| 123456789101112131415161718192021222324252627282930313233343536373839404142434445 | using System;using System.Collections.Generic;using LJLib.Net.SPI.Com;namespace LJLib.Net.SPI.Server{    public abstract class LJServerBase : ILJServer    {        public delegate LJResponse DHandle(ILJRequest request, object state); // 委托声明        protected Dictionary<string, DHandle> handlers = new Dictionary<string, DHandle>(); // 缓存所有处理        protected Dictionary<string, Type> requestTypes = new Dictionary<string, Type>();        public LJResponse DoExcute(ILJRequest request, object state)        {            if (!handlers.ContainsKey(request.GetApiName()))            {                throw new Exception("接口未定义:" + request.GetApiName().ToString());            }            DHandle handler = handlers[request.GetApiName()];// 必成从缓存读取            if (handler == null)            {                throw new Exception("接口未定义:" + request.GetApiName().ToString());            }            return handler(request, state);        }        public Type GetRequestType(string apiName)        {            if (requestTypes.ContainsKey(apiName))            {                return requestTypes[apiName];            }            else            {                throw new Exception("接口未定义:" + apiName);            }        }        public void AddMap(string apiName, Type requestType, DHandle handler)        {            requestTypes[apiName] = requestType;            handlers[apiName] = handler;        }    }}
 |