From 95d256e875a22af604850dc78a7fe557c070acd1 Mon Sep 17 00:00:00 2001 From: Siegfried Pammer Date: Wed, 28 Mar 2018 09:27:25 +0200 Subject: [PATCH] Fix Tester.DecompileCSharp --- ICSharpCode.Decompiler.Tests/Helpers/Tester.cs | 2 +- ICSharpCode.Decompiler/Metadata/Dom.cs | 7 ++++++- .../Metadata/UniversalAssemblyResolver.cs | 2 +- 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/ICSharpCode.Decompiler.Tests/Helpers/Tester.cs b/ICSharpCode.Decompiler.Tests/Helpers/Tester.cs index 8a20f4f5b..c24c5bff1 100644 --- a/ICSharpCode.Decompiler.Tests/Helpers/Tester.cs +++ b/ICSharpCode.Decompiler.Tests/Helpers/Tester.cs @@ -377,7 +377,7 @@ namespace ICSharpCode.Decompiler.Tests.Helpers public static string DecompileCSharp(string assemblyFileName, DecompilerSettings settings = null) { - using (var module = Mono.Cecil.ModuleDefinition.ReadModule(assemblyFileName)) { + using (var module = Metadata.UniversalAssemblyResolver.LoadMainModule(assemblyFileName)) { var typeSystem = new DecompilerTypeSystem(module); CSharpDecompiler decompiler = new CSharpDecompiler(typeSystem, settings ?? new DecompilerSettings()); decompiler.AstTransforms.Insert(0, new RemoveEmbeddedAtttributes()); diff --git a/ICSharpCode.Decompiler/Metadata/Dom.cs b/ICSharpCode.Decompiler/Metadata/Dom.cs index 9bae8343f..a32caac49 100644 --- a/ICSharpCode.Decompiler/Metadata/Dom.cs +++ b/ICSharpCode.Decompiler/Metadata/Dom.cs @@ -87,7 +87,7 @@ namespace ICSharpCode.Decompiler.Metadata Net_4_0 } - public class PEFile + public class PEFile : IDisposable { public string FileName { get; } public PEReader Reader { get; } @@ -156,6 +156,11 @@ namespace ICSharpCode.Decompiler.Metadata yield return new Resource(this, h); } } + + public void Dispose() + { + Reader.Dispose(); + } } public enum ResourceType diff --git a/ICSharpCode.Decompiler/Metadata/UniversalAssemblyResolver.cs b/ICSharpCode.Decompiler/Metadata/UniversalAssemblyResolver.cs index 982758c1b..fa685c300 100644 --- a/ICSharpCode.Decompiler/Metadata/UniversalAssemblyResolver.cs +++ b/ICSharpCode.Decompiler/Metadata/UniversalAssemblyResolver.cs @@ -61,7 +61,7 @@ namespace ICSharpCode.Decompiler.Metadata { var resolver = new UniversalAssemblyResolver(mainAssemblyFileName, throwOnError); - var module = new PEReader(new FileStream(mainAssemblyFileName, FileMode.Open), inMemory ? PEStreamOptions.PrefetchEntireImage : PEStreamOptions.Default); + var module = new PEReader(new FileStream(mainAssemblyFileName, FileMode.Open, FileAccess.Read), inMemory ? PEStreamOptions.PrefetchEntireImage : PEStreamOptions.Default); resolver.TargetFramework = module.DetectTargetFrameworkId();