public static void LoadPlugins() { TemplateEditorManager tem = new TemplateEditorManager(); ProjectEditorManager pem = new ProjectEditorManager(); editorManagers = new Dictionary<string, IEditorManager>(); editorManagers.Add(tem.Name, tem); editorManagers.Add(pem.Name, pem); contentManagers = new Dictionary<string, IContentManager>(); simplePluginManagers = new Dictionary<string, ISimplePluginManager>(); FileInfo info = new FileInfo(Assembly.GetExecutingAssembly().Location); if (info.Exists) { foreach (FileInfo dllFile in info.Directory.GetFiles("MyGeneration.UI.Plugins.*.dll")) { try { Assembly assembly = Assembly.LoadFile(dllFile.FullName); foreach (Type type in assembly.GetTypes()) { Type[] interfaces = type.GetInterfaces(); foreach (Type iface in interfaces) { if (iface == typeof(IEditorManager) || iface == typeof(IContentManager) || iface == typeof(ISimplePluginManager)) { try { ConstructorInfo[] constructors = type.GetConstructors(); ConstructorInfo constructor = constructors[0]; object plugin = constructor.Invoke(BindingFlags.CreateInstance, null, new object[] { }, null); if (plugin is IEditorManager) { IEditorManager em = plugin as IEditorManager; if (!editorManagers.ContainsKey(em.Name)) { editorManagers[em.Name] = em; } } else if (plugin is IContentManager) { IContentManager cm = plugin as IContentManager; if (!contentManagers.ContainsKey(cm.Name)) { contentManagers[cm.Name] = cm; } } else if (plugin is ISimplePluginManager) { ISimplePluginManager spm = plugin as ISimplePluginManager; if (!simplePluginManagers.ContainsKey(spm.Name)) { simplePluginManagers[spm.Name] = spm; } } } catch (Exception ex) { pluginLoadErrors.Add(dllFile, ex); } } } } } catch (Exception ex) { pluginLoadErrors.Add(dllFile, ex); } } } }
public static void LoadPlugins() { TemplateEditorManager tem = new TemplateEditorManager(); ProjectEditorManager pem = new ProjectEditorManager(); editorManagers = new Dictionary <string, IEditorManager>(); editorManagers.Add(tem.Name, tem); editorManagers.Add(pem.Name, pem); contentManagers = new Dictionary <string, IContentManager>(); simplePluginManagers = new Dictionary <string, ISimplePluginManager>(); FileInfo info = new FileInfo(Assembly.GetExecutingAssembly().Location); if (info.Exists) { foreach (FileInfo dllFile in info.Directory.GetFiles("MyGeneration.UI.Plugins.*.dll")) { try { Assembly assembly = Assembly.LoadFile(dllFile.FullName); foreach (Type type in assembly.GetTypes()) { Type[] interfaces = type.GetInterfaces(); foreach (Type iface in interfaces) { if (iface == typeof(IEditorManager) || iface == typeof(IContentManager) || iface == typeof(ISimplePluginManager)) { try { ConstructorInfo[] constructors = type.GetConstructors(); ConstructorInfo constructor = constructors[0]; object plugin = constructor.Invoke(BindingFlags.CreateInstance, null, new object[] { }, null); if (plugin is IEditorManager) { IEditorManager em = plugin as IEditorManager; if (!editorManagers.ContainsKey(em.Name)) { editorManagers[em.Name] = em; } } else if (plugin is IContentManager) { IContentManager cm = plugin as IContentManager; if (!contentManagers.ContainsKey(cm.Name)) { contentManagers[cm.Name] = cm; } } else if (plugin is ISimplePluginManager) { ISimplePluginManager spm = plugin as ISimplePluginManager; if (!simplePluginManagers.ContainsKey(spm.Name)) { simplePluginManagers[spm.Name] = spm; } } } catch (Exception ex) { pluginLoadErrors.Add(dllFile, ex); } } } } } catch (Exception ex) { pluginLoadErrors.Add(dllFile, ex); } } } }