private static void AddUrls(SandBoxDynamicLoader loader) { Dictionary<string, CAModel> Urls = loader.GetAllAction(); foreach (var url in Urls) { try { AllUrl.Add(url.Value.UrlPath); } catch (Exception) { } try { UrlRefAction.Add(url.Key, url.Value); } catch (Exception) { } } }
/// <summary>加载组件 /// </summary> /// <param name="plugin"></param> public static void LoadPlugin(PluginEntity plugin) { lock (_Plugins) { if (!_Plugins.Exists(p => p.Id == plugin.Id)) { string webPath = _ApplicationBase + plugin.Name + "\\" + plugin.PVersion + "\\"; string appPath = webPath + "bin\\"; try { System.IO.File.Copy(AppDomain.CurrentDomain.BaseDirectory + "\\bin\\Huber.SandBonDriver.dll", appPath + "Huber.SandBonDriver.dll", true); System.IO.File.Copy(AppDomain.CurrentDomain.BaseDirectory + "Huber.Kernel.dll", appPath + "Huber.Kernel.dll", true); } catch (Exception) { } var loader = new SandBoxDynamicLoader( appPath, string.Format(_AppdomainName, plugin.Name, plugin.PVersion.ToString()), webPath + "Web.config", plugin.Id); loader.LoadAssembly(appPath + plugin.Name + ".dll"); _LoaderDic.Add(loader.PluginName, loader); _Plugins.Add(plugin); AddUrls(loader); loader.InvokeMothod("Huber.Kernel.Entity.HuberVariable", "SetCurWebDir", webPath, "/Plugins/" + plugin.Name + "/" + plugin.PVersion); } } }