Esempio n. 1
0
        /// <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);
        }
Esempio n. 2
0
        /// <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);
        }
Esempio n. 3
0
        /// <summary>
        /// Выгрузить из памяти загруженные плюгИны
        /// </summary>
        public void UnloadPlugIn()
        {
#if _SEPARATE_APPDOMAIN
            if (isInitPluginAppDomain == true)
            {
                AppDomain.Unload(m_appDomain);

                m_appDomain      = null;
                m_proxyAppDomain = null;
            }
            else
            {
                ;
            }
#endif
            Clear();
        }
Esempio n. 4
0
        /// <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();
        }