static GisEditor() { serializer = new GisEditorGeoSerializer(); infrastructureManager = CreateManager <InfrastructureManager>(); Collection <Manager> managers = infrastructureManager.GetManagers(); ProjectManager.CurrentProjectPlugin = ProjectManager.GetProjectPlugins().OrderBy(p => p.Index).FirstOrDefault(); managers.OfType <PluginManager>().ForEach(m => m.GetPlugins()); infrastructureManager.ApplySettings(managers.OfType <PluginManager>().SelectMany(m => m.GetPlugins())); }
private static T GetManager <T>(ref T manager) where T : Manager { if (manager == null) { var foundManagers = infrastructureManager.GetManagers().OfType <T>().ToArray(); if (foundManagers.Length > 0) { manager = foundManagers.First(); InfrastructureManager.ApplySettings(manager); } } return(manager); }