Ejemplo n.º 1
0
        public void DisableModule(string moduleName)
        {
            var controller = _partManager.ApplicationParts.FirstOrDefault(p => p.Name == moduleName);

            if (controller != null)
            {
                _partManager.ApplicationParts.Remove(controller);
                var ui = _partManager.ApplicationParts.FirstOrDefault(p => p.Name == $"{moduleName}.Views");
                if (ui != null)
                {
                    _partManager.ApplicationParts.Remove(ui);
                }
                var items = new List <ServiceDescriptor>();
                foreach (var item in _serviceContext.Services)
                {
                    if (item.ServiceType.Assembly.GetName().Name == moduleName)
                    {
                        items.Add(item);
                    }
                }
                foreach (var service in items)
                {
                    _serviceContext.Services.Remove(service);
                }
                var context = PluginsLoadContexts.Get(moduleName);
                context.Disable();

                PluginsLoadContexts.Remove(moduleName);
                GC.Collect();
                GC.WaitForPendingFinalizers();
                ResetControllActions();
            }
        }
Ejemplo n.º 2
0
        public void DeleteModule(string moduleName)
        {
            PluginsLoadContexts.Remove(moduleName);
            var directory = new DirectoryInfo(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Modules", moduleName));

            directory.Delete(true);
        }
Ejemplo n.º 3
0
        public void DeleteModule(string moduleName)
        {
            PluginsLoadContexts.Remove(moduleName);

            DirectoryInfo directory = new DirectoryInfo($"{AppDomain.CurrentDomain.BaseDirectory}Modules\\{moduleName}");

            directory.Delete(true);
        }
Ejemplo n.º 4
0
        public void DisableModule(string moduleName)
        {
            var controller = _partManager.ApplicationParts.First(p => p.Name == moduleName);

            _partManager.ApplicationParts.Remove(controller);

            var ui = _partManager.ApplicationParts.First(p => p.Name == $"{moduleName}.Views");

            _partManager.ApplicationParts.Remove(ui);

            var context = PluginsLoadContexts.Get(moduleName);

            context.Disable();

            PluginsLoadContexts.Remove(moduleName);

            ResetControllActions();
        }