public FileGeneratorControl(IServiceProvider serviceProvider) : this() { this.serviceProvider = serviceProvider; assemblyBrowser = (IAssemblyBrowser) this.serviceProvider.GetService(typeof(IAssemblyBrowser)); assemblyBrowser.ActiveItemChanged += OnAssemblyBrowserActiveItemChanged; }
public GraphControl(IServiceProvider serviceProvider) { assemblyBrowser = (IAssemblyBrowser) serviceProvider.GetService(typeof (IAssemblyBrowser)); viewer = new GViewer(); viewer.SelectionChanged += OnSelectionChanged; DockControl(viewer); }
/// <summary> /// Initializes a new instance of the <see cref="DiagramViewerContainer"/> class. /// </summary> /// <param name="serviceProvider">The service provider.</param> public DiagramViewerContainer(IServiceProvider serviceProvider) { InitializeComponent(); this.assemblyBrowser = serviceProvider.GetService(typeof(IAssemblyBrowser)) as IAssemblyBrowser; this.assemblyManager = serviceProvider.GetService(typeof(IAssemblyManager)) as IAssemblyManager; this.populator = new InstructionDataPopulator(this.assemblyManager); this.elementHost.Child = new DiagramViewer(); }
public void Load(IServiceProvider serviceProvider) { this._windowManager = (IWindowManager)serviceProvider.GetService(typeof(IWindowManager)); _assemblyBrowser = (IAssemblyBrowser)serviceProvider.GetService(typeof(IAssemblyBrowser)); _assemblyManager = (IAssemblyManager)serviceProvider.GetService(typeof(IAssemblyManager)); this._commandBarManager = (ICommandBarManager)serviceProvider.GetService(typeof(ICommandBarManager)); _commandBarManager.CommandBars["Browser.Assembly"].Items.AddButton("Browse Assembly", BrowseAssemblyHandler); _commandBarManager.CommandBars["Browser.Assembly"].Items.AddButton("Browse Dependencies", BrowseDependenciesHandler); _commandBarManager.CommandBars["Browser.TypeDeclaration"].Items.AddButton("Browse Ancestry", BrowseAncestryHandler); _commandBarManager.CommandBars["Browser.TypeDeclaration"].Items.AddButton("Browse Interactions", BrowseInteractionsHandler); _commandBarManager.CommandBars["Browser.TypeDeclaration"].Items.AddButton("Visualize Descendants", VisualizeDescendantsHandler); }
/// <summary> /// Clean up any resources being used. /// </summary> protected override void Dispose( bool disposing ) { if ( disposing ) { if(components != null) { components.Dispose(); } _assemblyBrowser = null; _assemblyManager = null; _languageManager = null; _TranslatorManager = null; } base.Dispose( disposing ); }
/// <summary> /// .NET Reflector が plug-in をロードした際に呼び出します。 /// </summary> /// <param name="serviceProvider"></param> public void Load(IServiceProvider serviceProvider) { _commandBarManager = serviceProvider.GetTypedService<ICommandBarManager>(); _assemblyBrowser = serviceProvider.GetTypedService<IAssemblyBrowser>(); _assemblyBrowser.ActiveItemChanged += AssemblyBrowserActiveItemChanged; _separator1 = _commandBarManager.CommandBars["Browser.TypeDeclaration"].Items.AddSeparator(); _button1 = _commandBarManager.CommandBars["Browser.TypeDeclaration"].Items.AddButton(@"Copy Full Assembly Name", CopyFullAssemblyNameButtonClick); _separator2 = _commandBarManager.CommandBars["Browser.MethodDeclaration"].Items.AddSeparator(); _button2 = _commandBarManager.CommandBars["Browser.MethodDeclaration"].Items.AddButton(@"Copy Full Assembly Name", CopyFullAssemblyNameButtonClick); _separator3 = _commandBarManager.CommandBars["Edit"].Items.AddSeparator(); _button3 = _commandBarManager.CommandBars["Edit"].Items.AddButton(@"Copy Full Assembly Name", CopyFullAssemblyNameButtonClick, Keys.Alt|Keys.Control|Keys.O); }
public Reflector(IAssemblyManager manager, IAssemblyBrowser browser, IWindowManager windowManager) { this._manager = manager; this._browser = browser; _windowManager = windowManager; }
/// <summary> /// Addin load method /// </summary> /// <param name="serviceProvider">Reflector service provider</param> public void Load(System.IServiceProvider serviceProvider) { PluginFactory.Register(new ReflectorPlugin(this)); sp = serviceProvider; wm = GetService <IWindowManager>(); ab = GetService <IAssemblyBrowser>(); cbm = GetService <ICommandBarManager>(); am = GetService <IAssemblyManager>(); CheckFrameWorkVersion(); // Main Window items = new List <UIContext>(); reflexilwindow = new Reflexil.Forms.ReflexilWindow(); wm.Windows.Add(REFLEXIL_WINDOW_ID, reflexilwindow, REFLEXIL_WINDOW_TEXT); // Main button items.Add(new ButtonUIContext(cbm.CommandBars[REFLECTOR_TOOLS_ID])); items.Add(new ButtonUIContext(cbm.CommandBars[REFLECTOR_TOOLS_ID], REFLEXIL_BUTTON_TEXT, Button_Click, BasePlugin.ReflexilImage)); using (ImageList browserimages = new ImageList()) { browserimages.Images.AddStrip(PluginFactory.GetInstance().GetAllBrowserImages()); browserimages.TransparentColor = Color.Green; using (ImageList barimages = new ImageList()) { barimages.Images.AddStrip(PluginFactory.GetInstance().GetAllBarImages()); // Menus var typemenu = AddMenu(REFLECTOR_TYPEDEC_ID); var assemblymenu = AddMenu(REFLECTOR_ASSEMBLY_ID); var assemblyrefmenu = AddMenu(REFLECTOR_ASSEMBLYREF_ID); var modulemenu = AddMenu(REFLECTOR_MODULE_ID); var methodmenu = AddMenu(REFLECTOR_METHODDEC_ID); var fieldmenu = AddMenu(REFLECTOR_FIELDDEC_ID); var propertymenu = AddMenu(REFLECTOR_PROPERTYDEC_ID); var eventmenu = AddMenu(REFLECTOR_EVENTDEC_ID); var resmenu = AddMenu(REFLECTOR_RESOURCE_ID); var allmenus = new UIContext[] { typemenu, assemblymenu, assemblyrefmenu, modulemenu, methodmenu, fieldmenu, propertymenu, eventmenu, resmenu }; var membersmenus = new UIContext[] { assemblyrefmenu, typemenu, methodmenu, fieldmenu, propertymenu, eventmenu, resmenu }; // Type declaration menu items.Add(new SubMenuUIContext(typemenu, "Inject inner class", (sender, e) => Inject(EInjectType.Class), browserimages.Images[(int)EBrowserImages.PublicClass])); items.Add(new SubMenuUIContext(typemenu, "Inject inner interface", (sender, e) => Inject(EInjectType.Interface), browserimages.Images[(int)EBrowserImages.PublicInterface])); items.Add(new SubMenuUIContext(typemenu, "Inject inner struct", (sender, e) => Inject(EInjectType.Struct), browserimages.Images[(int)EBrowserImages.PublicStructure])); items.Add(new SubMenuUIContext(typemenu, "Inject inner enum", (sender, e) => Inject(EInjectType.Enum), browserimages.Images[(int)EBrowserImages.PublicEnum])); items.Add(new SubMenuUIContext(typemenu)); items.Add(new SubMenuUIContext(typemenu, "Inject event", (sender, e) => Inject(EInjectType.Event), browserimages.Images[(int)EBrowserImages.PublicEvent])); items.Add(new SubMenuUIContext(typemenu, "Inject field", (sender, e) => Inject(EInjectType.Field), browserimages.Images[(int)EBrowserImages.PublicField])); items.Add(new SubMenuUIContext(typemenu, "Inject method", (sender, e) => Inject(EInjectType.Method), browserimages.Images[(int)EBrowserImages.PublicMethod])); items.Add(new SubMenuUIContext(typemenu, "Inject constructor", (sender, e) => Inject(EInjectType.Constructor), browserimages.Images[(int)EBrowserImages.PublicConstructor])); items.Add(new SubMenuUIContext(typemenu, "Inject property", (sender, e) => Inject(EInjectType.Property), browserimages.Images[(int)EBrowserImages.PublicProperty])); // Shared subitems for Assembly/Module foreach (MenuUIContext menu in new MenuUIContext[] { assemblymenu, modulemenu }) { items.Add(new SubMenuUIContext(menu, "Inject class", (sender, e) => Inject(EInjectType.Class), browserimages.Images[(int)EBrowserImages.PublicClass])); items.Add(new SubMenuUIContext(menu, "Inject interface", (sender, e) => Inject(EInjectType.Interface), browserimages.Images[(int)EBrowserImages.PublicInterface])); items.Add(new SubMenuUIContext(menu, "Inject struct", (sender, e) => Inject(EInjectType.Struct), browserimages.Images[(int)EBrowserImages.PublicStructure])); items.Add(new SubMenuUIContext(menu, "Inject enum", (sender, e) => Inject(EInjectType.Enum), browserimages.Images[(int)EBrowserImages.PublicEnum])); items.Add(new SubMenuUIContext(menu, "Inject assembly reference", (sender, e) => Inject(EInjectType.AssemblyReference), browserimages.Images[(int)EBrowserImages.LinkedAssembly])); items.Add(new SubMenuUIContext(menu, "Inject resource", (sender, e) => Inject(EInjectType.Resource), browserimages.Images[(int)EBrowserImages.Resources])); items.Add(new SubMenuUIContext(menu)); items.Add(new SubMenuUIContext(menu, "Save as...", (sender, e) => AssemblyHelper.SaveAssembly(GetCurrentAssemblyDefinition(), GetCurrentModuleOriginalLocation()), barimages.Images[(int)EBarImages.Save])); items.Add(new SubMenuUIContext(menu, "Obfuscator search...", (sender, e) => AssemblyHelper.SearchObfuscator(GetCurrentModuleOriginalLocation()), barimages.Images[(int)EBarImages.Search])); items.Add(new SubMenuUIContext(menu, "Reload", ReloadAssembly, barimages.Images[(int)EBarImages.Reload])); items.Add(new SubMenuUIContext(menu, "Rename...", RenameItem, barimages.Images[(int)EBarImages.New])); items.Add(new SubMenuUIContext(menu, "Verify", (sender, e) => AssemblyHelper.VerifyAssembly(GetCurrentAssemblyDefinition(), GetCurrentModuleOriginalLocation()), barimages.Images[(int)EBarImages.Check])); } // Shared subitems for renaming/deleting foreach (MenuUIContext menu in membersmenus) { if (menu == typemenu) { items.Add(new SubMenuUIContext(menu)); } items.Add(new SubMenuUIContext(menu, "Rename...", RenameItem, barimages.Images[(int)EBarImages.New])); items.Add(new SubMenuUIContext(menu, "Delete", DeleteMember, barimages.Images[(int)EBarImages.Delete])); } items.AddRange(allmenus); } } // Main events ab.ActiveItemChanged += this.ActiveItemChanged; am.AssemblyLoaded += this.AssemblyLoaded; am.AssemblyUnloaded += this.AssemblyUnloaded; PluginFactory.GetInstance().ReloadAssemblies(am.Assemblies); reflexilwindow.HandleItem(ab.ActiveItem); }
public void Load(IServiceProvider serviceProvider) { PluginFactory.Register(new ReflectorPlugin(this)); _sp = serviceProvider; _wm = GetService <IWindowManager>(); _ab = GetService <IAssemblyBrowser>(); _cbm = GetService <ICommandBarManager>(); _am = GetService <IAssemblyManager>(); // IAssemblyManager exposes HotReplaceAssembly, but we want to support older Reflector versions _hotReplaceAssemblyMethod = _am.GetType().GetMethod("HotReplaceAssembly", BindingFlags.Instance | BindingFlags.Public); // Main Window _items = new List <UIContext>(); ReflexilWindow = new Forms.ReflexilWindow(); _wm.Windows.Add(ReflexilWindowId, ReflexilWindow, ReflexilWindowText); // Main button AddButtonSeparatorIfNeeded(ReflectorToolsId); _items.Add(new ButtonUIContext(_cbm.CommandBars[ReflectorToolsId], ReflexilButtonText, MainButtonClick, BasePlugin.ReflexilImage)); AddButtonSeparatorIfNeeded(ReflectorToolBarId); _items.Add(new ButtonUIContext(_cbm.CommandBars[ReflectorToolBarId], ReflexilButtonText, MainButtonClick, BasePlugin.ReflexilImage)); using (var browserimages = new ImageList()) { browserimages.Images.AddStrip(PluginFactory.GetInstance().GetAllBrowserImages()); browserimages.TransparentColor = Color.Green; using (var barimages = new ImageList()) { barimages.Images.AddStrip(PluginFactory.GetInstance().GetAllBarImages()); // Menus var typemenu = AddMenu(ReflectorTypedecId); var assemblymenu = AddMenu(ReflectorAssemblyId); var assemblyrefmenu = AddMenu(ReflectorAssemblyrefId); var modulemenu = AddMenu(ReflectorModuleId); var methodmenu = AddMenu(ReflectorMethoddecId); var fieldmenu = AddMenu(ReflectorFielddecId); var propertymenu = AddMenu(ReflectorPropertydecId); var eventmenu = AddMenu(ReflectorEventdecId); var resmenu = AddMenu(ReflectorResourceId); var allmenus = new [] { typemenu, assemblymenu, assemblyrefmenu, modulemenu, methodmenu, fieldmenu, propertymenu, eventmenu, resmenu }; var membersmenus = new [] { assemblyrefmenu, typemenu, methodmenu, fieldmenu, propertymenu, eventmenu, resmenu }; // Type declaration menu _items.Add(new SubMenuUIContext(typemenu, "Inject constructor", (sender, e) => Inject(InjectType.Constructor), browserimages.Images[(int)EBrowserImages.PublicConstructor])); _items.Add(new SubMenuUIContext(typemenu, "Inject event", (sender, e) => Inject(InjectType.Event), browserimages.Images[(int)EBrowserImages.PublicEvent])); _items.Add(new SubMenuUIContext(typemenu, "Inject field", (sender, e) => Inject(InjectType.Field), browserimages.Images[(int)EBrowserImages.PublicField])); _items.Add(new SubMenuUIContext(typemenu, "Inject method", (sender, e) => Inject(InjectType.Method), browserimages.Images[(int)EBrowserImages.PublicMethod])); _items.Add(new SubMenuUIContext(typemenu, "Inject property", (sender, e) => Inject(InjectType.Property), browserimages.Images[(int)EBrowserImages.PublicProperty])); _items.Add(new SubMenuUIContext(typemenu)); _items.Add(new SubMenuUIContext(typemenu, "Inject inner class", (sender, e) => Inject(InjectType.Class), browserimages.Images[(int)EBrowserImages.PublicClass])); _items.Add(new SubMenuUIContext(typemenu, "Inject inner enum", (sender, e) => Inject(InjectType.Enum), browserimages.Images[(int)EBrowserImages.PublicEnum])); _items.Add(new SubMenuUIContext(typemenu, "Inject inner interface", (sender, e) => Inject(InjectType.Interface), browserimages.Images[(int)EBrowserImages.PublicInterface])); _items.Add(new SubMenuUIContext(typemenu, "Inject inner struct", (sender, e) => Inject(InjectType.Struct), browserimages.Images[(int)EBrowserImages.PublicStructure])); // Shared subitems for Assembly/Module foreach (var menu in new[] { assemblymenu, modulemenu }) { _items.Add(new SubMenuUIContext(menu, "Inject assembly reference", (sender, e) => Inject(InjectType.AssemblyReference), browserimages.Images[(int)EBrowserImages.LinkedAssembly])); _items.Add(new SubMenuUIContext(menu, "Inject class", (sender, e) => Inject(InjectType.Class), browserimages.Images[(int)EBrowserImages.PublicClass])); _items.Add(new SubMenuUIContext(menu, "Inject enum", (sender, e) => Inject(InjectType.Enum), browserimages.Images[(int)EBrowserImages.PublicEnum])); _items.Add(new SubMenuUIContext(menu, "Inject interface", (sender, e) => Inject(InjectType.Interface), browserimages.Images[(int)EBrowserImages.PublicInterface])); _items.Add(new SubMenuUIContext(menu, "Inject struct", (sender, e) => Inject(InjectType.Struct), browserimages.Images[(int)EBrowserImages.PublicStructure])); _items.Add(new SubMenuUIContext(menu, "Inject resource", (sender, e) => Inject(InjectType.Resource), browserimages.Images[(int)EBrowserImages.Resources])); _items.Add(new SubMenuUIContext(menu)); _items.Add(new SubMenuUIContext(menu, "Reload Reflexil object model", ReloadAssembly, barimages.Images[(int)EBarImages.Reload])); if (_hotReplaceAssemblyMethod != null) { _items.Add(new SubMenuUIContext(menu, "Update Reflector object model", UpdateHostObjectModel, barimages.Images[(int)EBarImages.Reload])); } _items.Add(new SubMenuUIContext(menu)); _items.Add(new SubMenuUIContext(menu, "Obfuscator search...", SearchObfuscator, barimages.Images[(int)EBarImages.Search])); _items.Add(new SubMenuUIContext(menu, "Rename...", RenameItem, barimages.Images[(int)EBarImages.New])); _items.Add(new SubMenuUIContext(menu, "Save as...", SaveAssembly, barimages.Images[(int)EBarImages.Save])); _items.Add(new SubMenuUIContext(menu, "Verify", VerifyAssembly, barimages.Images[(int)EBarImages.Check])); } // Shared subitems for renaming/deleting foreach (var menu in membersmenus) { if (menu == typemenu) { _items.Add(new SubMenuUIContext(menu)); } _items.Add(new SubMenuUIContext(menu, "Delete", DeleteItem, barimages.Images[(int)EBarImages.Delete])); _items.Add(new SubMenuUIContext(menu, "Rename...", RenameItem, barimages.Images[(int)EBarImages.New])); if (_hotReplaceAssemblyMethod != null) { _items.Add(new SubMenuUIContext(menu)); _items.Add(new SubMenuUIContext(menu, "Update Reflector object model", UpdateHostObjectModel, barimages.Images[(int)EBarImages.Reload])); } } _items.AddRange(allmenus); } } // Main events _ab.ActiveItemChanged += ActiveItemChanged; _am.AssemblyLoaded += AssemblyLoaded; _am.AssemblyUnloaded += AssemblyUnloaded; ReflexilWindow.HandleItem(_ab.ActiveItem); }
/// <summary> /// Addin load method /// </summary> /// <param name="serviceProvider">Cecil Studio service provider</param> public void Load(IServiceProvider serviceProvider) { PluginFactory.Register(new CecilStudioPlugin(this)); _sp = serviceProvider; _wm = GetService <IWindowManager>(); _ab = GetService <IAssemblyBrowser>(); _cbm = GetService <IBarManager>(); _am = GetService <IAssemblyManager>(); CheckPrerequisites(); // Main Window _items = new List <UIContext>(); ReflexilWindow = new Forms.ReflexilWindow(); var window = _wm.Windows.Add(ReflexilWindowId, ReflexilWindow, ReflexilWindowText); window.Image = BasePlugin.ReflexilImage; // Main button _items.Add(new ButtonUIContext(_cbm.Bars[BarNames.Toolbar])); _items.Add(new ButtonUIContext(_cbm.Bars[BarNames.Toolbar], ReflexilButtonText, Button_Click, BasePlugin.ReflexilImage)); using (var browserimages = new ImageList()) { browserimages.Images.AddStrip(PluginFactory.GetInstance().GetAllBrowserImages()); browserimages.TransparentColor = Color.Green; using (var barimages = new ImageList()) { barimages.Images.AddStrip(PluginFactory.GetInstance().GetAllBarImages()); // Menus var typemenu = AddMenu(BarNames.TypeDefinitionBrowser.ToString()); var assemblymenu = AddMenu(BarNames.AssemblyDefinitionBrowser.ToString()); var assemblyrefmenu = AddMenu(BarNames.AssemblyNameReferenceBrowser.ToString()); var modulemenu = AddMenu(BarNames.ModuleDefinitionBrowser.ToString()); var methodmenu = AddMenu(BarNames.MethodDefinitionBrowser.ToString()); var fieldmenu = AddMenu(BarNames.FieldDefinitionBrowser.ToString()); var propertymenu = AddMenu(BarNames.PropertyDefinitionBrowser.ToString()); var eventmenu = AddMenu(BarNames.EventDefinitionBrowser.ToString()); var allmenus = new UIContext[] { typemenu, assemblymenu, assemblyrefmenu, modulemenu, methodmenu, fieldmenu, propertymenu, eventmenu }; var membersmenus = new UIContext[] { assemblyrefmenu, typemenu, methodmenu, fieldmenu, propertymenu, eventmenu }; // Type declaration menu _items.Add(new SubMenuUIContext(typemenu, "Inject inner class", (sender, e) => Inject(EInjectType.Class), browserimages.Images[(int)EBrowserImages.PublicClass])); _items.Add(new SubMenuUIContext(typemenu, "Inject inner interface", (sender, e) => Inject(EInjectType.Interface), browserimages.Images[(int)EBrowserImages.PublicInterface])); _items.Add(new SubMenuUIContext(typemenu, "Inject inner struct", (sender, e) => Inject(EInjectType.Struct), browserimages.Images[(int)EBrowserImages.PublicStructure])); _items.Add(new SubMenuUIContext(typemenu, "Inject inner enum", (sender, e) => Inject(EInjectType.Enum), browserimages.Images[(int)EBrowserImages.PublicEnum])); _items.Add(new SubMenuUIContext(typemenu)); _items.Add(new SubMenuUIContext(typemenu, "Inject event", (sender, e) => Inject(EInjectType.Event), browserimages.Images[(int)EBrowserImages.PublicEvent])); _items.Add(new SubMenuUIContext(typemenu, "Inject field", (sender, e) => Inject(EInjectType.Field), browserimages.Images[(int)EBrowserImages.PublicField])); _items.Add(new SubMenuUIContext(typemenu, "Inject method", (sender, e) => Inject(EInjectType.Method), browserimages.Images[(int)EBrowserImages.PublicMethod])); _items.Add(new SubMenuUIContext(typemenu, "Inject constructor", (sender, e) => Inject(EInjectType.Constructor), browserimages.Images[(int)EBrowserImages.PublicConstructor])); _items.Add(new SubMenuUIContext(typemenu, "Inject property", (sender, e) => Inject(EInjectType.Property), browserimages.Images[(int)EBrowserImages.PublicProperty])); // Shared subitems for Assembly/Module foreach (var menu in new[] { assemblymenu, modulemenu }) { _items.Add(new SubMenuUIContext(menu, "Inject class", (sender, e) => Inject(EInjectType.Class), browserimages.Images[(int)EBrowserImages.PublicClass])); _items.Add(new SubMenuUIContext(menu, "Inject interface", (sender, e) => Inject(EInjectType.Interface), browserimages.Images[(int)EBrowserImages.PublicInterface])); _items.Add(new SubMenuUIContext(menu, "Inject struct", (sender, e) => Inject(EInjectType.Struct), browserimages.Images[(int)EBrowserImages.PublicStructure])); _items.Add(new SubMenuUIContext(menu, "Inject enum", (sender, e) => Inject(EInjectType.Enum), browserimages.Images[(int)EBrowserImages.PublicEnum])); _items.Add(new SubMenuUIContext(menu, "Inject assembly reference", (sender, e) => Inject(EInjectType.AssemblyReference), browserimages.Images[(int)EBrowserImages.LinkedAssembly])); _items.Add(new SubMenuUIContext(menu)); _items.Add(new SubMenuUIContext(menu, "Save as...", (sender, e) => AssemblyHelper.SaveAssembly(GetCurrentAssemblyDefinition(), GetCurrentModuleOriginalLocation()), barimages.Images[(int)EBarImages.Save])); /*_items.Add(new SubMenuUIContext(menu, "Obfuscator search...", (sender, e) => AssemblyHelper.SearchObfuscator(GetCurrentModuleOriginalLocation()), barimages.Images[(int)EBarImages.Search]));*/ _items.Add(new SubMenuUIContext(menu, "Reload", ReloadAssembly, barimages.Images[(int)EBarImages.Reload])); _items.Add(new SubMenuUIContext(menu, "Rename...", RenameItem, barimages.Images[(int)EBarImages.New])); _items.Add(new SubMenuUIContext(menu, "Verify", (sender, e) => AssemblyHelper.VerifyAssembly(GetCurrentAssemblyDefinition(), GetCurrentModuleOriginalLocation()), barimages.Images[(int)EBarImages.Check])); } // Shared subitems for renaming/deleting foreach (var uiContext in membersmenus) { var menu = (MenuUIContext)uiContext; if (menu == typemenu) { _items.Add(new SubMenuUIContext(menu)); } _items.Add(new SubMenuUIContext(menu, "Rename...", RenameItem, barimages.Images[(int)EBarImages.New])); _items.Add(new SubMenuUIContext(menu, "Delete", DeleteMember, barimages.Images[(int)EBarImages.Delete])); } _items.AddRange(allmenus); } } // Main events _ab.ActiveItemChanged += ActiveItemChanged; _am.AssemblyLoaded += AssemblyLoaded; _am.AssemblyUnloaded += AssemblyUnloaded; PluginFactory.GetInstance().ReloadAssemblies(_am.Assemblies.ToList()); ReflexilWindow.HandleItem(_ab.ActiveItem); }