Example #1
0
        public static ImageOutputCollection Load()
        {
            ImageOutputCollection imageOutputCollection = new ImageOutputCollection();

            foreach (string path in LoadValidAssemblies())
            {
                try
                {
                    Assembly assembly;
                    assembly = Assembly.LoadFrom(path);
                    IPersistableImageFormat imageFormatPlugin;
                    imageFormatPlugin = ExamineAssembly(assembly);
                    if (imageFormatPlugin != null)
                        imageOutputCollection.Add(imageFormatPlugin);
                }
                catch (FileLoadException e)
                {
                    Debug.WriteLine(e.Message);
                }
            }
            return imageOutputCollection;
        }
Example #2
0
 private static void EnsureOutputsLoaded()
 {
     if (imageOutputCollection == null)
     {
         imageOutputCollection = Plugins.Load();
         foreach (IPersistableImageFormat format in imageOutputCollection)
         {
             IConfigurablePlugin plugin = format as IConfigurablePlugin;
             if (plugin != null && plugin.Settings != null)
             {
                 object settings = Configuration.Current.RetrieveSettingsForPlugin(plugin.Settings.GetType());
                 if (settings != null)
                     plugin.Settings = settings;
             }
         }
     }
 }
Example #3
0
		public static ImageOutputCollection Load()
		{
			ImageOutputCollection imageOutputCollection = new ImageOutputCollection();

            IPersistableImageFormat imageFormatPlugin = null;

            //DC load from current Dll
            var assembly = Assembly.GetExecutingAssembly();
            foreach (Type testType in assembly.GetTypes())
            {
                //Look for public types and ignore abstract classes
                
                if (testType.IsPublic && testType.Attributes != TypeAttributes.Abstract)
                {
                    //Does the type implement the proper interface
                    //
                    if ((testType.GetInterface(PluginInterfaceName, true)) != null && testType.IsClass && !testType.IsAbstract)
                    {
                        object pluginObject = assembly.CreateInstance(testType.FullName);
                        imageFormatPlugin = (IPersistableImageFormat)pluginObject;
                        imageOutputCollection.Add(imageFormatPlugin);
                    }
                }
            }
            

            /*
			foreach (string path in LoadValidAssemblies())
			{
				try
				{
					Assembly assembly;
					assembly = Assembly.LoadFrom(path);
					IPersistableImageFormat imageFormatPlugin;
					imageFormatPlugin = ExamineAssembly(assembly);
					if (imageFormatPlugin != null)
						imageOutputCollection.Add(imageFormatPlugin);
				}
				catch (FileLoadException e)
				{
					Debug.WriteLine(e.Message);
				}
			}*/
			return imageOutputCollection;
		}
Example #4
0
		private static void EnsureOutputsLoaded()
		{
            //DC this is a hack to make sure we can load the subMenus (which on 2nd load were causing an exception)
            try
            {
                foreach (IPersistableImageFormat format in imageOutputCollection)
                {
                    var text = format.Menu.Text;
                }
            }
            catch
            {
                imageOutputCollection = null;
            }
			if (imageOutputCollection == null)
			{
				imageOutputCollection = Plugins.Load();
				foreach (IPersistableImageFormat format in imageOutputCollection)
				{
					IConfigurablePlugin plugin = format as IConfigurablePlugin;
					if (plugin != null && plugin.Settings != null)
					{
						object settings = Configuration.Current.RetrieveSettingsForPlugin(plugin.Settings.GetType());
						if (settings != null)
							plugin.Settings = settings;
					}
				}
			}
		}