public MainWindow()
        {
            InitializeComponent();
            Title = Tool.GetConfig("NAME");
            void Log(string log)
            {
                Dispatcher.BeginInvoke(System.Windows.Threading.DispatcherPriority.Normal, new Action(() =>
                {
                    LogTextBox.Text += log + "\n";
                    UpdateLayout();
                    LogTextBox.ScrollToVerticalOffset(LogTextBox.ActualHeight + LogTextBox.VerticalOffset);
                }));
            }

            Tool.Log = Log;

            List <string> pluginpath = FindPlugin();

            foreach (string filename in pluginpath)
            {
                try
                {
                    //获取文件名
                    string asmfile = filename;
                    string asmname = Path.GetFileNameWithoutExtension(asmfile);
                    if (asmname != string.Empty)
                    {
                        // 利用反射,构造DLL文件的实例
                        Assembly asm = Assembly.LoadFile(asmfile);
                        //利用反射,从程序集(DLL)中,提取类,并把此类实例化
                        Type[] t = asm.GetExportedTypes();
                        foreach (Type type in t)
                        {
                            if (type.GetInterface("ITaskPlugin") != null)
                            {
                                ITaskPlugin plugin = (ITaskPlugin)Activator.CreateInstance(type);
                                MenuItem    item   = new MenuItem();
                                item.Header = plugin.name;
                                item.Tag    = plugin;
                                item.Click += ITaskPlugin_Click;
                                TaskMenu.Items.Add(item);
                            }
                            else if (type.GetInterface("ISchedulePlugin") != null)
                            {
                                ISchedulePlugin plugin = (ISchedulePlugin)Activator.CreateInstance(type);
                                MenuItem        item   = new MenuItem();
                                item.Header = plugin.name;
                                item.Tag    = plugin;
                                item.Click += ISchedulePlugin_Click;
                                ScheduleMenu.Items.Add(item);
                            }
                        }
                    }
                }
                catch (Exception ex)
                {
                    Console.Write(ex.Message);
                }
            }
            string info = Tool.GetInfo();

            if (info != "")
            {
                MessageBox.Show(info);
            }
        }