/// <summary> /// 基础初始化函数 /// </summary> /// <param name="plugConfig">插件配置</param> /// <param name="context">Http上下文</param> /// <param name="methodName">Http请求方法</param> public virtual void BaseInitialization(TContext context, string methodName, NFinal.Config.Plug.PlugConfig plugConfig) { this.config = plugConfig; this.context = context; this._methodName = methodName; SetResponse(CompressMode.Deflate); }
public static void Configure(NFinal.Config.Plug.PlugConfig plugConfig) { Dictionary <string, StringContainer> systemConfigDictionary = new Dictionary <string, StringContainer>(); systemConfigDictionary.Add("siteName", "站点名称"); systemConfigDictionary.Add("mobile", "联系电话"); plugConfig.keyValueCache = new NFinal.Collections.FastSearch.FastSearch <StringContainer>(systemConfigDictionary); systemConfigDictionary.Clear(); }
/// <summary> /// 获取默认控制器 /// </summary> /// <param name="context"></param> /// <returns></returns> public override IAction <IOwinContext, IOwinRequest> GetAction(IOwinContext context, NFinal.Config.Plug.PlugConfig plugConfig) { ContextAction controller = new ContextAction(); controller.BaseInitialization(context, null, plugConfig); return(controller); }
/// <summary> /// 加载配置 /// </summary> public static void Init() { Configration.isInit = true; plugConfigDictionary = new Dictionary <string, NFinal.Config.Plug.PlugConfig>(); string fileName = Directory.GetCurrentDirectory(); string nfinalConfigPath = NFinal.IO.Path.GetApplicationPath("/nfinal.json"); if (File.Exists(nfinalConfigPath)) { using (StreamReader nfinalConfigReader = System.IO.File.OpenText(nfinalConfigPath)) { string nfinalJsonText = nfinalConfigReader.ReadToEnd(); nfinalConfigReader.Dispose(); nfinalJsonText = DeleteComment(nfinalJsonText); try { Configration.globalConfig = Newtonsoft.Json.JsonConvert.DeserializeObject <NFinal.Config.Global.GlobalConfig>(nfinalJsonText); Configration.globalConfig.JsonObject = SimpleJSON.JSON.Parse(nfinalJsonText).AsObject; } catch { throw new NFinal.Exceptions.NFinalConfigLoadException(nfinalJsonText); } NFinal.Config.Plug.PlugConfig plugConfig = null; string nfinalPlugFolder = NFinal.IO.Path.GetApplicationPath("/Plugs/"); string[] plugJsonFileNameList = Directory.GetFiles(nfinalPlugFolder, "plug.json", SearchOption.AllDirectories); //Configration.globalConfig.plugs = new Plug.Plug[plugJsonFileNameList.Length]; for (int i = 0; i < plugJsonFileNameList.Length; i++) { string plugJsonFileName = plugJsonFileNameList[i]; if (File.Exists(plugJsonFileName)) { string plugJsonText = ""; using (StreamReader streamReader = System.IO.File.OpenText(plugJsonFileName)) { plugJsonText = streamReader.ReadToEnd(); } plugJsonText = DeleteComment(plugJsonText); try { plugConfig = Newtonsoft.Json.JsonConvert.DeserializeObject <NFinal.Config.Plug.PlugConfig>(plugJsonText); plugConfig.JsonObject = SimpleJSON.JSON.Parse(nfinalJsonText).AsObject; plugConfigDictionary.Add(plugConfig.plug.name, plugConfig); } catch { throw new NFinal.Exceptions.PlugConfigLoadException(plugJsonText); } } else { throw new FileNotFoundException("找不到NFinal插件配置文件:" + plugJsonFileName, plugJsonFileName); } } //for (int i = 0; i < Configration.globalConfig.plugs.Length; i++) //{ // if (globalConfig.plugs[i].enable) // { // string plugConfigPath = NFinal.IO.Path.GetApplicationPath(globalConfig.plugs[i].configPath); // if (File.Exists(plugConfigPath)) // { // using (StreamReader streamReader = System.IO.File.OpenText(plugConfigPath)) // { // string plugJsonText = streamReader.ReadToEnd(); // streamReader.Dispose(); // plugJsonText = DeleteComment(plugJsonText); // plugConfig = Newtonsoft.Json.JsonConvert.DeserializeObject<NFinal.Config.Plug.PlugConfig>(plugJsonText); // plugConfig.JsonObject = SimpleJSON.JSON.Parse(nfinalJsonText).AsObject; // plugConfigDictionary.Add(globalConfig.plugs[i].name,plugConfig); // } // } // else // { // throw new FileNotFoundException("找不到NFinal插件配置文件:" // + plugConfigPath, // plugConfigPath); // } // } //} } } else { throw new FileNotFoundException("找不到NFinal全局配置文件:" + nfinalConfigPath, nfinalConfigPath); } }
/// <summary> /// 获取默认Controller /// </summary> /// <param name="context"></param> /// <returns></returns> public abstract IAction <TContext, TRequest> GetAction(TContext context, NFinal.Config.Plug.PlugConfig plugConfig);
/// <summary> /// 流输出初始化函数 /// </summary> /// <param param name="plugConfig">插件配置</param> /// <param name="methodName">行为名称</param> /// <param name="context">Http上下文</param> /// <param name="outputStream">输出流</param> /// <param name="request"></param> /// <param name="compressMode"></param> public override void Initialization(HttpContext context, string methodName, Stream outputStream, HttpRequest request, CompressMode compressMode, NFinal.Config.Plug.PlugConfig plugConfig) { base.Initialization(context, methodName, outputStream, request, compressMode, plugConfig); this.parameters = new NFinal.NameValueCollection(); foreach (var query in request.Query) { this.parameters.Add(query.Key, query.Value); } if (context.Request.HasFormContentType) { foreach (var form in context.Request.Form) { this.parameters.Add(form.Key, form.Value); } } IDictionary <string, string> requestCookie = new Dictionary <string, string>(); foreach (var cookie in this.request.Cookies) { requestCookie.Add(cookie.Key, cookie.Value); } this.Cookie = new Cookie(requestCookie); this.Session = GetSession(Cookie.SessionId); if (outputStream == null) { this.outputStream = context.Response.Body; } else { this.outputStream = outputStream; } }
/// <summary> /// 获取默认控制器 /// </summary> /// <param name="context"></param> /// <returns></returns> public override IAction <IDictionary <string, object>, Owin.Request> GetAction(IDictionary <string, object> context, NFinal.Config.Plug.PlugConfig plugConfig) { NFinal.Owin.Request request = context.GetRequest(); NFinal.OwinAction controller = new OwinAction(); controller.BaseInitialization(context, null, plugConfig); return(controller); }
/// <summary> /// 流输出初始化函数 /// </summary> /// <param name="enviroment">Owin中间件</param> /// <param name="methodName">Http请求方法</param> /// <param name="outputStream">Http输出流</param> /// <param name="request">Http请求信息</param> /// <param name="compressMode">压缩模式</param> public override void Initialization(IDictionary <string, object> enviroment, string methodName, Stream outputStream, Owin.Request request, CompressMode compressMode, NFinal.Config.Plug.PlugConfig plugConfig) { base.Initialization(enviroment, methodName, outputStream, request, compressMode, plugConfig); this.parameters = request.parameters; this.Cookie = new Cookie(this.request.cookies); this.Session = GetSession(Cookie.SessionId); if (outputStream == null) { this.outputStream = enviroment.GetResponseBody(); } else { this.outputStream = outputStream; } }
/// <summary> /// 基础初始化函数 /// </summary> /// <param name="plugConfig">插件配置</param> /// <param name="enviroment">Owin中间件</param> /// <param name="methodName">Http请求方法</param> public override void BaseInitialization(IDictionary <string, object> enviroment, string methodName, NFinal.Config.Plug.PlugConfig plugConfig) { base.BaseInitialization(enviroment, methodName, plugConfig); this.request = enviroment.GetRequest(); this.parameters = request.parameters; this.Cookie = new Cookie(this.request.cookies); this.Session = GetSession(Cookie.SessionId); this.outputStream = enviroment.GetResponseBody(); }
/// <summary> /// 初始化函数 /// </summary> /// <param name="plugConfig">插件配置</param> /// <param name="context">Http上下文</param> /// <param name="methodName">Http请求方法</param> /// <param name="outputStream">Http输出流</param> /// <param name="request">Http请求信息</param> /// <param name="compressMode">压缩模式</param> public virtual void Initialization(TContext context, string methodName, Stream outputStream, TRequest request, CompressMode compressMode, NFinal.Config.Plug.PlugConfig plugConfig) { this.config = plugConfig; this.context = context; this._methodName = methodName; this.outputStream = outputStream; this.request = request; SetResponse(compressMode); }
public override void Initialization(IOwinContext context, string methodName, Stream outputStream, IOwinRequest request, CompressMode compressMode, NFinal.Config.Plug.PlugConfig plugConfig) { throw new NotImplementedException(); }
/// <summary> /// 初始化 /// </summary> /// <param name="context"></param> /// <param name="methodName"></param> /// <param name="plugConfig"></param> public override void BaseInitialization(IOwinContext context, string methodName, NFinal.Config.Plug.PlugConfig plugConfig) { }