Beispiel #1
0
        static void Main(string[] args)
        {
            TK.Logging.ILogger logger = LoggerFactory.CreateLoggerFor("main");

            /*var scheduler = new SimpleSchedulerWrapper();
             *
             * scheduler.AddJob("0/60 * * * * ?", MyTask, new Dictionary<string, object>(), false);
             * scheduler.AddJob("0/1 * * * * ?", MyTask, new Dictionary<string, object>(), true);
             *
             * scheduler.Start();
             * Console.ReadLine();
             * return;
             */

            List <PluginConfiguration> configs = new List <PluginConfiguration>(PluginConfiguration.LoadPluginsConfig());
            var pluginLoader = new PluginLoader(AppDomain.CurrentDomain.BaseDirectory, "*Plugin.dll");

            foreach (string name in pluginLoader.PluginNames)
            {
                PluginBase plugin = pluginLoader[name];
                Console.WriteLine(string.Format("{0} {1}", plugin.PluginName(), plugin.PluginVersion()));
                var pluginConfig = configs.Where(c => c.PluginName == plugin.PluginName())
                                   .FirstOrDefault();

                plugin.Initialize(pluginConfig.Paramters);
                var defaultParameter = plugin.GetParameters();
                foreach (string key in defaultParameter.Keys.ToArray())
                {
                    Console.WriteLine(string.Format("Parameter: {0}, Value: {1}", key, defaultParameter[key]));
                }
                plugin.Start();
            }
            Console.ReadKey();

            foreach (string name in pluginLoader.PluginNames)
            {
                pluginLoader[name].Stop();
            }
        }