From be887d0ea684ac6106546b23bc566feed5594cd0 Mon Sep 17 00:00:00 2001 From: Siegfried Pammer Date: Tue, 27 Aug 2019 15:35:04 +0200 Subject: [PATCH] #1674: Add DebugInfoProvider to WholeProjectDecompiler API. --- ICSharpCode.Decompiler/CSharp/WholeProjectDecompiler.cs | 4 ++++ ILSpy/Languages/CSharpLanguage.cs | 1 + 2 files changed, 5 insertions(+) diff --git a/ICSharpCode.Decompiler/CSharp/WholeProjectDecompiler.cs b/ICSharpCode.Decompiler/CSharp/WholeProjectDecompiler.cs index a757e29212..f8283cc3fc 100644 --- a/ICSharpCode.Decompiler/CSharp/WholeProjectDecompiler.cs +++ b/ICSharpCode.Decompiler/CSharp/WholeProjectDecompiler.cs @@ -36,6 +36,7 @@ using static ICSharpCode.Decompiler.Metadata.MetadataExtensions; using ICSharpCode.Decompiler.Metadata; using ICSharpCode.Decompiler.Solution; +using ICSharpCode.Decompiler.DebugInfo; namespace ICSharpCode.Decompiler.CSharp { @@ -73,6 +74,8 @@ public class WholeProjectDecompiler public IAssemblyResolver AssemblyResolver { get; set; } + public IDebugInfoProvider DebugInfoProvider { get; set; } + /// /// The MSBuild ProjectGuid to use for the new project. /// null to automatically generate a new GUID. @@ -322,6 +325,7 @@ protected virtual bool IncludeTypeWhenDecompilingProject(Metadata.PEFile module, CSharpDecompiler CreateDecompiler(DecompilerTypeSystem ts) { var decompiler = new CSharpDecompiler(ts, settings); + decompiler.DebugInfoProvider = DebugInfoProvider; decompiler.AstTransforms.Add(new EscapeInvalidIdentifiers()); decompiler.AstTransforms.Add(new RemoveCLSCompliantAttribute()); return decompiler; diff --git a/ILSpy/Languages/CSharpLanguage.cs b/ILSpy/Languages/CSharpLanguage.cs index 087aaec61c..bdc969d7b8 100644 --- a/ILSpy/Languages/CSharpLanguage.cs +++ b/ILSpy/Languages/CSharpLanguage.cs @@ -432,6 +432,7 @@ public ILSpyWholeProjectDecompiler(LoadedAssembly assembly, DecompilationOptions this.options = options; base.Settings = options.DecompilerSettings; base.AssemblyResolver = assembly.GetAssemblyResolver(); + base.DebugInfoProvider = assembly.GetDebugInfoOrNull(); } protected override IEnumerable> WriteResourceToFile(string fileName, string resourceName, Stream entryStream)