/[RomCheater]/trunk/RomCheater.PluginFramework/Core/PluginLoader.cs
ViewVC logotype

Diff of /trunk/RomCheater.PluginFramework/Core/PluginLoader.cs

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 811 by william, Tue Jun 18 08:36:08 2013 UTC revision 812 by william, Tue Apr 15 14:52:10 2014 UTC
# Line 21  using System.Reflection; Line 21  using System.Reflection;
21  using RomCheater.Core;  using RomCheater.Core;
22  using System.Runtime.Serialization;  using System.Runtime.Serialization;
23  using System.Security;  using System.Security;
24    using Enterprise.Logging;
25    
26  namespace RomCheater.PluginFramework.Core  namespace RomCheater.PluginFramework.Core
27  {  {
# Line 408  namespace RomCheater.PluginFramework.Cor Line 409  namespace RomCheater.PluginFramework.Cor
409              try              try
410              {              {
411                  if (!silent)                  if (!silent)
412                      logger.Info.WriteLine("Loading Plugins...");                      gLog.Info.WriteLine("Loading Plugins...");
413    
414                  string PluginPath = string.Format(@"{0}\Plugins", typeof(PluginLoader).Assembly.Location.Replace(@"\RomCheater.PluginFramework.dll", ""));                  string PluginPath = string.Format(@"{0}\Plugins", typeof(PluginLoader).Assembly.Location.Replace(@"\RomCheater.PluginFramework.dll", ""));
415                  if (!silent)                  if (!silent)
416                      logger.Debug.WriteLine("Plugins Path: {0}", PluginPath);                      gLog.Debug.WriteLine("Plugins Path: {0}", PluginPath);
417                  List<string> dlls = new List<string>(Directory.GetFiles(PluginPath, "*.dll"));                  List<string> dlls = new List<string>(Directory.GetFiles(PluginPath, "*.dll"));
418                  // also load any default plugins from the framework                  // also load any default plugins from the framework
419                  dlls.Add(typeof(PluginLoader).Assembly.Location);                  dlls.Add(typeof(PluginLoader).Assembly.Location);
420    
421                  if (!silent)                  if (!silent)
422                      logger.Debug.WriteLine("  Found: {0} plugin dlls", dlls.Count);                      gLog.Debug.WriteLine("  Found: {0} plugin dlls", dlls.Count);
423                  foreach (string dll in dlls)                  foreach (string dll in dlls)
424                  {                  {
425                      FileInfo fi = new FileInfo(dll);                      FileInfo fi = new FileInfo(dll);
426                      if (!silent)                      if (!silent)
427                          logger.Debug.WriteLine("    plugin[{0}]: {1}", dlls.IndexOf(dll), fi.Name);                          gLog.Debug.WriteLine("    plugin[{0}]: {1}", dlls.IndexOf(dll), fi.Name);
428                      GetConfigPluginsFromDll(fi);                      GetConfigPluginsFromDll(fi);
429                      GetInputPluginsFromDll(fi);                      GetInputPluginsFromDll(fi);
430                      GetWindowPluginsFromDll(fi);                      GetWindowPluginsFromDll(fi);
# Line 433  namespace RomCheater.PluginFramework.Cor Line 434  namespace RomCheater.PluginFramework.Cor
434                                    
435    
436                  if (!silent)                  if (!silent)
437                      logger.Info.WriteLine("  Loaded {0} config plugins", LoadedConfigPlugins.Count);                      gLog.Info.WriteLine("  Loaded {0} config plugins", LoadedConfigPlugins.Count);
438                  if (!silent)                  if (!silent)
439                      logger.Info.WriteLine("  Loaded {0} input plugins", LoadedInputPlugins.Count);                      gLog.Info.WriteLine("  Loaded {0} input plugins", LoadedInputPlugins.Count);
440                  if (!silent)                  if (!silent)
441                      logger.Info.WriteLine("  Loaded {0} window plugins", LoadedWindowPlugins.Count);                      gLog.Info.WriteLine("  Loaded {0} window plugins", LoadedWindowPlugins.Count);
442                  if (!silent)                  if (!silent)
443                      logger.Info.WriteLine("  Loaded {0} usercontrol plugins", LoadedUserControlPlugins.Count);                      gLog.Info.WriteLine("  Loaded {0} usercontrol plugins", LoadedUserControlPlugins.Count);
444                  if (!silent)                  if (!silent)
445                      logger.Info.WriteLine("Plugins Loaded.");                      gLog.Info.WriteLine("Plugins Loaded.");
446              }              }
447              catch (ReflectionTypeLoadException ex)              catch (ReflectionTypeLoadException ex)
448              {              {
# Line 454  namespace RomCheater.PluginFramework.Cor Line 455  namespace RomCheater.PluginFramework.Cor
455                      }                      }
456                  }                  }
457                  if (!silent)                  if (!silent)
458                      logger.Error.WriteLine("Failed to load one or more plugins{0}Possible Reason:{0}{1}", System.Environment.NewLine, builder.ToString());                      gLog.Error.WriteLine("Failed to load one or more plugins{0}Possible Reason:{0}{1}", System.Environment.NewLine, builder.ToString());
459              }              }
460              catch (Exception ex)              catch (Exception ex)
461              {              {
462                  if (!silent)                  if (!silent)
463                      logger.Error.WriteLine("Failed to load one or more plugins{0}Possible Reason:{0}{1}", System.Environment.NewLine, ex.ToString());                      gLog.Error.WriteLine("Failed to load one or more plugins{0}Possible Reason:{0}{1}", System.Environment.NewLine, ex.ToString());
464              }              }
465          }          }
466          public List<IConfigPlugin> LoadedConfigPlugins { get; private set; }          public List<IConfigPlugin> LoadedConfigPlugins { get; private set; }
# Line 506  namespace RomCheater.PluginFramework.Cor Line 507  namespace RomCheater.PluginFramework.Cor
507    
508          private void GetConfigPluginsFromDll(FileInfo dll)          private void GetConfigPluginsFromDll(FileInfo dll)
509          {          {
510              logger.Debug.WriteLine("  Getting Config plugins contained in {0}", dll.Name);              gLog.Debug.WriteLine("  Getting Config plugins contained in {0}", dll.Name);
511              Assembly asm = Assembly.LoadFile(dll.FullName);              Assembly asm = Assembly.LoadFile(dll.FullName);
512              List<Type> types = new List<Type>(asm.GetTypes());              List<Type> types = new List<Type>(asm.GetTypes());
513              foreach (Type type in types)              foreach (Type type in types)
# Line 529  namespace RomCheater.PluginFramework.Cor Line 530  namespace RomCheater.PluginFramework.Cor
530                          }                          }
531                          else                          else
532                          {                          {
533                              logger.Debug.WriteLine("    Loaded Config Plugin [name={0}] from {1}", c.Name, dll.Name);                              gLog.Debug.WriteLine("    Loaded Config Plugin [name={0}] from {1}", c.Name, dll.Name);
534                              LoadedConfigPlugins.Add(c);                              LoadedConfigPlugins.Add(c);
535                          }                          }
536                      }                      }
# Line 538  namespace RomCheater.PluginFramework.Cor Line 539  namespace RomCheater.PluginFramework.Cor
539          }          }
540          private void GetInputPluginsFromDll(FileInfo dll)          private void GetInputPluginsFromDll(FileInfo dll)
541          {          {
542              logger.Debug.WriteLine("  Getting Input plugins contained in {0}", dll.Name);              gLog.Debug.WriteLine("  Getting Input plugins contained in {0}", dll.Name);
543              Assembly asm = Assembly.LoadFile(dll.FullName);              Assembly asm = Assembly.LoadFile(dll.FullName);
544              List<Type> types = new List<Type>(asm.GetTypes());              List<Type> types = new List<Type>(asm.GetTypes());
545              foreach (Type type in types)              foreach (Type type in types)
# Line 561  namespace RomCheater.PluginFramework.Cor Line 562  namespace RomCheater.PluginFramework.Cor
562                          }                          }
563                          else                          else
564                          {                          {
565                              logger.Debug.WriteLine("    Loaded Input Plugin [name={0}] from {1}", c.Name, dll.Name);                              gLog.Debug.WriteLine("    Loaded Input Plugin [name={0}] from {1}", c.Name, dll.Name);
566                              LoadedInputPlugins.Add(c);                              LoadedInputPlugins.Add(c);
567                          }                          }
568                      }                      }
# Line 570  namespace RomCheater.PluginFramework.Cor Line 571  namespace RomCheater.PluginFramework.Cor
571          }          }
572          private void GetWindowPluginsFromDll(FileInfo dll)          private void GetWindowPluginsFromDll(FileInfo dll)
573          {          {
574              logger.Debug.WriteLine("  Getting Window plugins contained in {0}", dll.Name);              gLog.Debug.WriteLine("  Getting Window plugins contained in {0}", dll.Name);
575              Assembly asm = Assembly.LoadFile(dll.FullName);              Assembly asm = Assembly.LoadFile(dll.FullName);
576              List<Type> types = new List<Type>(asm.GetTypes());              List<Type> types = new List<Type>(asm.GetTypes());
577              foreach (Type type in types)              foreach (Type type in types)
# Line 593  namespace RomCheater.PluginFramework.Cor Line 594  namespace RomCheater.PluginFramework.Cor
594                          }                          }
595                          else                          else
596                          {                          {
597                              logger.Debug.WriteLine("    Loaded Window Plugin [name={0}] from {1}", c.Name, dll.Name);                              gLog.Debug.WriteLine("    Loaded Window Plugin [name={0}] from {1}", c.Name, dll.Name);
598                              LoadedWindowPlugins.Add(c);                              LoadedWindowPlugins.Add(c);
599                          }                          }
600                      }                      }
# Line 602  namespace RomCheater.PluginFramework.Cor Line 603  namespace RomCheater.PluginFramework.Cor
603          }          }
604          private void GetUserControlPluginsFromDll(FileInfo dll)          private void GetUserControlPluginsFromDll(FileInfo dll)
605          {          {
606              logger.Debug.WriteLine("  Getting UserControl plugins contained in {0}", dll.Name);              gLog.Debug.WriteLine("  Getting UserControl plugins contained in {0}", dll.Name);
607              Assembly asm = Assembly.LoadFile(dll.FullName);              Assembly asm = Assembly.LoadFile(dll.FullName);
608              List<Type> types = new List<Type>(asm.GetTypes());              List<Type> types = new List<Type>(asm.GetTypes());
609              foreach (Type type in types)              foreach (Type type in types)
# Line 625  namespace RomCheater.PluginFramework.Cor Line 626  namespace RomCheater.PluginFramework.Cor
626                          }                          }
627                          else                          else
628                          {                          {
629                              logger.Debug.WriteLine("    Loaded UserControl Plugin [name={0}] from {1}", c.Name, dll.Name);                              gLog.Debug.WriteLine("    Loaded UserControl Plugin [name={0}] from {1}", c.Name, dll.Name);
630                              LoadedUserControlPlugins.Add(c);                              LoadedUserControlPlugins.Add(c);
631                          }                          }
632                      }                      }

Legend:
Removed from v.811  
changed lines
  Added in v.812

  ViewVC Help
Powered by ViewVC 1.1.22