/// <summary> /// 导入插件配置文件 /// </summary> /// <param name="plugfile">插件配置文件路径</param> public void LoadPlugin(string plugfile) { container = ZhyContainer.CreateUnity(); plugin = new PluginConfig(); //switch (appType) //{ // case AppType.WCF: // helper = new WcfFrame.ServerController.ControllerHelper(); // break; //} assemblyPath = new FileInfo(plugfile).Directory.FullName + "\\dll"; var fileMap = new ExeConfigurationFileMap { ExeConfigFilename = plugfile }; System.Configuration.Configuration configuration = ConfigurationManager.OpenMappedExeConfiguration(fileMap, ConfigurationUserLevel.None); var plugininfo = (PluginSectionHandler)configuration.GetSection("plugin"); if (plugininfo != null) { plugin.Load(plugininfo, plugfile); } LoadDllList(plugfile);//加载程序集 var unitySection = (UnityConfigurationSection)configuration.GetSection("unity"); if (unitySection != null) { container.LoadConfiguration(unitySection);//判断EntLib的路径对不对 } if (plugin.defaultdbkey != "") { database = FactoryDatabase.GetDatabase(plugin.defaultdbkey); } else { database = FactoryDatabase.GetDatabase(); } database.PluginName = plugin.name; if (plugin.defaultcachekey != "") { cache = ZhyContainer.CreateCache(plugin.defaultcachekey); } else { cache = ZhyContainer.CreateCache(); } }
/// <summary> /// 导入插件配置文件 /// </summary> /// <param name="plugfile">插件配置文件路径</param> public void LoadPlugin(string plugfile) { container = ZhyContainer.CreateUnity(); plugin = new PluginConfig(); var fileMap = new ExeConfigurationFileMap { ExeConfigFilename = plugfile }; System.Configuration.Configuration configuration = ConfigurationManager.OpenMappedExeConfiguration(fileMap, ConfigurationUserLevel.None); var plugininfo = (PluginSectionHandler)configuration.GetSection("plugin"); if (plugininfo != null) { plugin.Load(plugininfo, plugfile); } DllList = LoadDllList(plugfile);//加载程序集 var unitySection = (UnityConfigurationSection)configuration.GetSection("unity"); if (unitySection != null) { container.LoadConfiguration(unitySection);//判断EntLib的路径对不对 } if (plugin.defaultdbkey != "") { database = FactoryDatabase.GetDatabase(plugin.defaultdbkey); } else { database = FactoryDatabase.GetDatabase(); } database.PluginName = plugin.name; if (plugin.defaultcachekey != "") { cache = ZhyContainer.CreateCache(plugin.defaultcachekey); } else { cache = ZhyContainer.CreateCache(); } }
public override AbstractController CreateController(string pluginname, string controllername) { string pname = pluginname; string cname = controllername; ModulePlugin mp; WcfControllerAttributeInfo wattr = AppPluginManage.GetPluginWcfControllerAttributeInfo(pname, cname, out mp); WcfServerController iController = (WcfServerController)EFWCoreLib.CoreFrame.Business.FactoryModel.GetObject(wattr.wcfControllerType, mp.database, mp.container, mp.cache, mp.plugin.name, null); //每次创建控制器的时候,重新创建db,防止并发操作数据 AbstractDatabase db = FactoryDatabase.GetDatabase(mp.plugin.defaultdbkey); db.PluginName = mp.plugin.name; iController.BindDb(db, mp.container, mp.cache, mp.plugin.name); iController.requestData = null; iController.responseData = null; return(iController); }
public static void AppStart() { lock (locker) { if (_isCalled == false) { try { WriterLog("--------------------------------"); WriterLog("应用开始启动!"); container = ZhyContainer.CreateUnity(); cache = ZhyContainer.CreateCache(); database = FactoryDatabase.GetDatabase(); //taskList = new List<TimingTask>(); //codeList = new List<FunClass>(); //加载插件 AppPluginManage.LoadAllPlugin(); _isCalled = true; WriterLog("应用启动成功!"); WriterLog("--------------------------------"); //AppMain(); } catch (Exception err) { AppGlobal.WriterLog("应用启动失败!"); AppGlobal.WriterLog(err.Message); AppGlobal.WriterLog("--------------------------------"); throw err; } } } }
public static void AppStart() { lock (locker) { if (_isCalled == false) { try { WriterLog("--------------------------------"); WriterLog("应用开始启动!"); string ClientType = System.Configuration.ConfigurationManager.AppSettings["ClientType"]; if (ClientType == "Web") { appType = AppType.Web; } else if (ClientType == "Winform") { appType = AppType.Winform; AppRootPath = System.Windows.Forms.Application.StartupPath + "\\"; } else if (ClientType == "WCF") { appType = AppType.WCF; AppRootPath = System.Windows.Forms.Application.StartupPath + "\\"; } else if (ClientType == "WCFClient") { appType = AppType.WCFClient; AppRootPath = System.Windows.Forms.Application.StartupPath + "\\"; } IsSaas = System.Configuration.ConfigurationManager.AppSettings["IsSaas"] == "true" ? true : false; container = ZhyContainer.CreateUnity(); cache = ZhyContainer.CreateCache(); database = FactoryDatabase.GetDatabase(); taskList = new List <TimingTask>(); codeList = new List <FunClass>(); missingDll = new List <string>(); AppPluginManage.LoadAllPlugin(); //初始化Web定制任务 MultiTask.Init(container, taskList);//任务 //是否开启Web控制器请求权限认证 //扩展Global,网站程序启动、停止可自定义代码 GlobalExtend.StartInit(); //初始化委托代码 BaseDelegateCode.Init(container, codeList);//执行函数 _isCalled = true; IsRun = true; if (missingDll.Count > 0) { string msg = "缺失的程序集:"; WriterLog(msg); for (int i = 0; i < missingDll.Count; i++) { msg = missingDll[i]; WriterLog(msg); } //MessageBox.Show(msg, "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning); } WriterLog("应用启动成功!"); WriterLog("--------------------------------"); //AppMain(); } catch (Exception err) { AppGlobal.WriterLog("应用启动失败!"); AppGlobal.WriterLog(err.Message); AppGlobal.WriterLog("--------------------------------"); throw err; } } } }
public static void AppStart() { lock (locker) { if (_isCalled == false) { try { WriterLog("--------------------------------"); WriterLog("应用开始启动!"); container = ZhyContainer.CreateUnity(); cache = ZhyContainer.CreateCache(); database = FactoryDatabase.GetDatabase(); taskList = new List <TimingTask>(); codeList = new List <FunClass>(); missingDll = new List <string>(); //加载插件 AppPluginManage.LoadAllPlugin(); //AppDomain.CurrentDomain.AssemblyResolve += new ResolveEventHandler(CurrentDomain_AssemblyResolve); //下面三个需要配置unity.config //初始化Web定制任务 //MultiTask.Init(container, taskList);//任务 //是否开启Web控制器请求权限认证 //扩展Global,网站程序启动、停止可自定义代码 //GlobalExtend.StartInit(); //初始化委托代码 //BaseDelegateCode.Init(container, codeList);//执行函数 _isCalled = true; //IsRun = true; if (missingDll.Count > 0) { string msg = "缺失的程序集:"; WriterLog(msg); for (int i = 0; i < missingDll.Count; i++) { msg = missingDll[i]; WriterLog(msg); } //MessageBox.Show(msg, "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning); } WriterLog("应用启动成功!"); WriterLog("--------------------------------"); //AppMain(); } catch (Exception err) { AppGlobal.WriterLog("应用启动失败!"); AppGlobal.WriterLog(err.Message); AppGlobal.WriterLog("--------------------------------"); throw err; } } } }