From c7ee9d31c19456373bb4c5bedfad174ac446e7fe Mon Sep 17 00:00:00 2001 From: Ed Harvey Date: Sat, 7 Mar 2015 03:31:53 +1100 Subject: [PATCH] Add "Load Dependencies" command to Assembly node context menu --- ILSpy/TreeNodes/AssemblyTreeNode.cs | 30 +++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/ILSpy/TreeNodes/AssemblyTreeNode.cs b/ILSpy/TreeNodes/AssemblyTreeNode.cs index ac400c156..94d4034c3 100644 --- a/ILSpy/TreeNodes/AssemblyTreeNode.cs +++ b/ILSpy/TreeNodes/AssemblyTreeNode.cs @@ -310,4 +310,34 @@ namespace ICSharpCode.ILSpy.TreeNodes } } } + [ExportContextMenuEntryAttribute(Header = "_Load Dependencies")] + sealed class LoadDependencies : IContextMenuEntry + { + public bool IsVisible(TextViewContext context) + { + if (context.SelectedTreeNodes == null) + return false; + return context.SelectedTreeNodes.All(n => n is AssemblyTreeNode); + } + + public bool IsEnabled(TextViewContext context) + { + return true; + } + + public void Execute(TextViewContext context) + { + if (context.SelectedTreeNodes == null) + return; + foreach (var node in context.SelectedTreeNodes) { + var la = ((AssemblyTreeNode)node).LoadedAssembly; + if (!la.HasLoadError) { + foreach (var assyRef in la.ModuleDefinition.AssemblyReferences) { + la.LookupReferencedAssembly(assyRef.FullName); + } + } + } + MainWindow.Instance.RefreshDecompiledView(); + } + } }