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);
        }