static void Execute(Lazy <IUndoCommandService> undoCommandService, IAppService appService, DocumentTreeNodeData[] nodes) { if (!AddNetModuleToAssemblyCommand.CanExecute(nodes)) { return; } var asmNode = (DsDocumentNode)nodes[0]; if (asmNode is ModuleDocumentNode) { asmNode = (AssemblyDocumentNode)asmNode.TreeNode.Parent.Data; } var win = new NetModuleOptionsDlg(); var data = new NetModuleOptionsVM(asmNode.Document.ModuleDef); win.DataContext = data; win.Owner = appService.MainWindow; if (win.ShowDialog() != true) { return; } var options = data.CreateNetModuleOptions(); var newModule = ModuleUtils.CreateNetModule(options.Name, options.Mvid, options.ClrVersion); var newFile = DsDotNetDocument.CreateModule(DsDocumentInfo.CreateDocument(string.Empty), newModule, true); var newModNode = asmNode.Context.DocumentTreeView.CreateModule(newFile); var cmd = new AddNewNetModuleToAssemblyCommand(undoCommandService.Value, (DsDocumentNode)nodes[0], newModNode); undoCommandService.Value.Add(cmd); appService.DocumentTabService.FollowReference(cmd.modNode); }
static void Execute(Lazy <IUndoCommandManager> undoCommandManager, IAppWindow appWindow, IFileTreeNodeData[] nodes) { if (!AddNetModuleToAssemblyCommand.CanExecute(nodes)) { return; } var asmNode = (IDnSpyFileNode)nodes[0]; if (asmNode is IModuleFileNode) { asmNode = (IAssemblyFileNode)asmNode.TreeNode.Parent.Data; } var win = new NetModuleOptionsDlg(); var data = new NetModuleOptionsVM(asmNode.DnSpyFile.ModuleDef); win.DataContext = data; win.Owner = appWindow.MainWindow; if (win.ShowDialog() != true) { return; } var options = data.CreateNetModuleOptions(); var newModule = ModuleUtils.CreateNetModule(options.Name, options.Mvid, options.ClrVersion); var newFile = DnSpyDotNetFile.CreateModule(DnSpyFileInfo.CreateFile(string.Empty), newModule, appWindow.FileTreeView.FileManager.Settings.LoadPDBFiles); var newModNode = asmNode.Context.FileTreeView.CreateModule(newFile); var cmd = new AddNewNetModuleToAssemblyCommand(undoCommandManager.Value, (IDnSpyFileNode)nodes[0], newModNode); undoCommandManager.Value.Add(cmd); appWindow.FileTabManager.FollowReference(cmd.modNode); }
CreateNetModuleCommand(Lazy <IUndoCommandService> undoCommandService, IDocumentTreeView documentTreeView, NetModuleOptions options) { this.undoCommandService = undoCommandService; var module = ModuleUtils.CreateNetModule(options.Name, options.Mvid, options.ClrVersion); var file = DsDotNetDocument.CreateModule(DsDocumentInfo.CreateDocument(string.Empty), module, true); fileNodeCreator = RootDocumentNodeCreator.CreateModule(documentTreeView, file); }
CreateNetModuleCommand(Lazy <IUndoCommandManager> undoCommandManager, IFileTreeView fileTreeView, NetModuleOptions options) { this.undoCommandManager = undoCommandManager; var module = ModuleUtils.CreateNetModule(options.Name, options.Mvid, options.ClrVersion); var file = DnSpyDotNetFile.CreateModule(DnSpyFileInfo.CreateFile(string.Empty), module, fileTreeView.FileManager.Settings.LoadPDBFiles); this.fileNodeCreator = RootDnSpyFileNodeCreator.CreateModule(fileTreeView, file); }
AddNewNetModuleToAssemblyCommand(AssemblyTreeNode asmNode, NetModuleOptions options) : base(asmNode, new AssemblyTreeNode(new LoadedAssembly(MainWindow.Instance.CurrentAssemblyList, ModuleUtils.CreateNetModule(options.Name, options.Mvid, options.ClrVersion))), true) { }
CreateNetModuleCommand(NetModuleOptions options) { var module = ModuleUtils.CreateNetModule(options.Name, options.Mvid, options.ClrVersion); this.asmNodeCreator = new AssemblyTreeNodeCreator(new LoadedAssembly(MainWindow.Instance.CurrentAssemblyList, module)); }
AddNewNetModuleToAssemblyCommand(AssemblyTreeNode asmNode, NetModuleOptions options) : base(asmNode, new AssemblyTreeNode(MainWindow.Instance.DnSpyFileList.CreateDnSpyFile(ModuleUtils.CreateNetModule(options.Name, options.Mvid, options.ClrVersion))), true) { }
CreateNetModuleCommand(NetModuleOptions options) { var module = ModuleUtils.CreateNetModule(options.Name, options.Mvid, options.ClrVersion); this.asmNodeCreator = new AssemblyTreeNodeCreator(MainWindow.Instance.DnSpyFileList.CreateDnSpyFile(module)); }