예제 #1
0
        private void ReloadRemoteDomain()
        {
            DomainUnloader oldUnloaded = _unloader;

            var evt = UnloadingDomain;

            if (evt != null)
            {
                evt(this, EventArgs.Empty);
            }

            lock (this)
            {
                _members.Clear();
                _modules.Clear();
                ClearAssemblyLoadSet();

                InitializeRemoteDomain();

                LoadModules();
            }

            RaiseModuleNamesChanged();

            oldUnloaded.Dispose();
        }
예제 #2
0
 public void Dispose()
 {
     if (_factory != null)
     {
         _factory.NewDatabaseAvailable -= OnNewDatabaseAvailable;
     }
     _typeDb = null;
     AppDomain.CurrentDomain.AssemblyResolve -= AssemblyResolver.Instance.CurrentDomain_AssemblyResolve;
     _unloader.Dispose();
 }
예제 #3
0
        public void Dispose()
        {
            _pythonInterpreter.Dispose();
            var evt = UnloadingDomain;

            evt?.Invoke(this, EventArgs.Empty);

            AppDomain.CurrentDomain.AssemblyResolve -= AssemblyResolver.Instance.CurrentDomain_AssemblyResolve;
            _unloader.Dispose();
#if DEBUG
            GC.SuppressFinalize(this);
#endif
        }
예제 #4
0
        public void Dispose()
        {
            if (_factory != null)
            {
                _factory.NewDatabaseAvailable -= OnNewDatabaseAvailable;
            }
            _typeDb = null;
            AppDomain.CurrentDomain.AssemblyResolve -= AssemblyResolver.Instance.CurrentDomain_AssemblyResolve;
            _unloader.Dispose();
#if DEBUG
            GC.SuppressFinalize(this);
#endif
        }
예제 #5
0
        public void Dispose()
        {
            var evt = UnloadingDomain;

            if (evt != null)
            {
                evt(this, EventArgs.Empty);
            }

            AppDomain.CurrentDomain.AssemblyResolve -= AssemblyResolver.Instance.CurrentDomain_AssemblyResolve;
            _unloader.Dispose();
#if DEBUG
            GC.SuppressFinalize(this);
#endif
        }
예제 #6
0
        public void Dispose()
        {
            var evt = UnloadingDomain;

            if (evt != null)
            {
                evt(this, EventArgs.Empty);
            }

            if (_factory is PythonInterpreterFactoryWithDatabase withDb)
            {
                withDb.NewDatabaseAvailable -= OnNewDatabaseAvailable;
            }
            _typeDb = null;
            AppDomain.CurrentDomain.AssemblyResolve -= AssemblyResolver.Instance.CurrentDomain_AssemblyResolve;
            _unloader.Dispose();
#if DEBUG
            GC.SuppressFinalize(this);
#endif
        }