private void btAddPlugin_Click(object sender, RoutedEventArgs e) { var dialog = new System.Windows.Forms.OpenFileDialog(); dialog.Filter = string.Format("Lazurite plugin file (*{0})|*{0}", PluginsManager.PluginFileExtension); dialog.Multiselect = false; if (dialog.ShowDialog() == System.Windows.Forms.DialogResult.OK) { var canAddPluginResult = _manager.CanAddPlugin(dialog.FileName); if (!canAddPluginResult.CanAdd) { _warningHandler.WarnFormat("Невозможно добавить плагин \r\n[{0}];\r\nПричина: {1}", dialog.FileName, canAddPluginResult.Message); } else { try { _manager.AddPlugin(dialog.FileName); MessageView.ShowMessage("Плагин добавлен!", "Добавление плагина", Icons.Icon.Check, Window.GetWindow(this).Content as Panel); Refresh(); } catch (Exception exception) { _warningHandler.ErrorFormat(exception, "Невозможно добавить плагин \r\n[{0}]", dialog.FileName); } } } }
public void LoadPluginTest() { Singleton.Add(new FileSavior()); var modulesManager = new PluginsManager(); var targetFile = @"D:\Temporary\Lazurite_test.pyp"; modulesManager.AddPlugin(targetFile); if (!modulesManager.GetModules().Any(x => x.Name.Contains("TestAction"))) { throw new Exception(); } }