private void InstantiatePlugIn(PlugInAttribute plugInInfo) { var appDomain = _appDomains[plugInInfo]; IPlugIn plugIn = appDomain.CreateInstanceAndUnwrap(plugInInfo.PlugInName, plugInInfo.EntryType) as IPlugIn; _plugIns.Add(plugInInfo, plugIn); }
private void CreateAppDomain(PlugInAttribute plugInInfo) { AppDomainSetup domainSetup = new AppDomainSetup(); domainSetup.ApplicationName = plugInInfo.PlugInName; domainSetup.ConfigurationFile = plugInInfo.PlugInName + ".dll.config"; domainSetup.ApplicationBase = AppDomain.CurrentDomain.BaseDirectory; var appDomain = AppDomain.CreateDomain(domainSetup.ApplicationName, AppDomain.CurrentDomain.Evidence, domainSetup); _appDomains.Add(plugInInfo, appDomain); }
private void UnLoadAppDomain(PlugInAttribute plugInInfo) { AppDomain.Unload(_appDomains[plugInInfo]); _appDomains.Remove(plugInInfo); }