/// <summary> /// Инициализация домена для загрузки в него плюгИнов /// </summary> private void initPluginDomain() { m_appDomain = AppDomain.CreateDomain("pluginDomain", s_domEvidence, s_domSetup); Type type = typeof(ProxyAppDomain); m_proxyAppDomain = (ProxyAppDomain)m_appDomain.CreateInstanceAndUnwrap(type.Assembly.FullName, type.FullName); }
/// <summary> /// Инициализация домена для загрузки в него плюгИнов /// </summary> private void initPluginDomain(string name) { m_appDomain = AppDomain.CreateDomain("PlugInAppDomain::" + name, s_domEvidence, s_domSetup); m_appDomain.UnhandledException += new UnhandledExceptionEventHandler(ProgramBase.SeparateAppDomain_UnhandledException); Type type = typeof(ProxyAppDomain); m_proxyAppDomain = (ProxyAppDomain)m_appDomain.CreateInstanceAndUnwrap(type.Assembly.FullName, type.FullName); }
/// <summary> /// Выгрузить из памяти загруженные плюгИны /// </summary> public void UnloadPlugIn() { #if _SEPARATE_APPDOMAIN if (isInitPluginAppDomain == true) { AppDomain.Unload(m_appDomain); m_appDomain = null; m_proxyAppDomain = null; } else { ; } #endif Clear(); }
/// <summary> /// Выгрузить из памяти загруженные плюгИны /// </summary> public void UnloadPlugIn() { #if _SEPARATE_APPDOMAIN if (isInitPluginAppDomain == true) { m_appDomain.UnhandledException -= ProgramBase.SeparateAppDomain_UnhandledException; AppDomain.Unload(m_appDomain); m_appDomain = null; m_proxyAppDomain = null; } else { ; } #endif Clear(); }