/// <summary> /// 重新加载配置 /// </summary> /// <param name="session"></param> /// <returns></returns> public static bool ReloadConfigure(ISession session) { var data = LoadAllPluginConfigureFromDataSource(session); lock (alllockobject) { AddinCache.ClearCfg(); foreach (var item in data) { AddinCache.AddCfg(item.MstModel.Phid, item); } } return(true); }
/// <summary> /// 初始化 /// </summary> /// <param name="session"></param> public static void Init(ISession session) { if (_inited) { return; } lock (lockobject) { //所有服务加入到缓存中 var serviceData = LoadAllPluginService(session); serviceData.ToList().ForEach(p => { AddinCache.AddService(p.Phid, p); }); if (_inited) { return; } IList <MethodAroundBizModel> configures = LoadAllPluginConfigureFromDataSource(session); foreach (var item in configures) { //通过ID填充Service记录 var service = AddinCache.GetService(item.MstModel.TargetServiceId); if (service != null) { item.MstModel.TargetAssemblyName = service.TargetAssemblyName; item.MstModel.TargetClassName = service.TargetClassName; item.MstModel.TargetMethodName = service.TargetMethodName; } AddinCache.AddCfg(item.MstModel.Phid, item); } //已经发布了的程序 var deployconfigures = configures.Where(p => p.MstModel.DeployFlag == 1).ToList(); foreach (var item in deployconfigures) { AddinCache.AddDeployedCfg(item.MstModel.Phid, item); } _inited = true; //设置初始化完成标志 } }