2525
2626using BridgeVs . Build . Util ;
2727using BridgeVs . Shared . Common ;
28- using BridgeVs . Shared . Logging ;
2928using Mono . Cecil ;
3029using Mono . Cecil . Pdb ;
3130using Mono . Cecil . Rocks ;
3231using System ;
3332using System . Collections . Generic ;
3433using System . IO ;
3534using System . Linq ;
36- using System . Threading ;
3735using FS = BridgeVs . Shared . FileSystem . FileSystemFactory ;
3836
3937namespace BridgeVs . Build . TypeMapper
@@ -58,7 +56,9 @@ internal class VisualizerAttributeInjector : IDisposable
5856
5957 private readonly WriterParameters _writerParameters ;
6058
61- private DefaultAssemblyResolver GetAssemblyResolver ( string assemblyDirectoryPath )
59+ private readonly Stream _assemblyStream ;
60+
61+ private static DefaultAssemblyResolver GetAssemblyResolver ( string assemblyDirectoryPath )
6262 {
6363 DefaultAssemblyResolver assemblyResolver = new DefaultAssemblyResolver ( ) ;
6464 assemblyResolver . AddSearchDirectory ( Path . GetDirectoryName ( assemblyDirectoryPath ) ) ;
@@ -104,15 +104,14 @@ public VisualizerAttributeInjector(string targetVisualizerAssemblyPath, string t
104104 SymbolReaderProvider = createPdbInfo ? new PdbReaderProvider ( ) : null ,
105105 InMemory = true ,
106106 ReadSymbols = createPdbInfo ,
107- ThrowIfSymbolsAreNotMatching = false
107+ ThrowIfSymbolsAreNotMatching = false ,
108108 } ;
109109
110110 //using a stream is better for testing
111- using ( Stream file = FS . FileSystem . File . OpenRead ( targetVisualizerAssemblyPath ) )
112- {
113- _debuggerVisualizerAssembly = AssemblyDefinition . ReadAssembly ( file , readerParameters ) ;
114- }
111+ _assemblyStream = FS . FileSystem . File . OpenRead ( targetVisualizerAssemblyPath ) ;
115112
113+ _debuggerVisualizerAssembly = AssemblyDefinition . ReadAssembly ( _assemblyStream , readerParameters ) ;
114+
116115 InitializeDebuggerAssembly ( ) ;
117116 RemapAssembly ( ) ;
118117 }
@@ -249,7 +248,7 @@ public void SaveDebuggerVisualizer(string debuggerVisualizerDst, IEnumerable<str
249248 {
250249 string fileName = Path . GetFileNameWithoutExtension ( debuggerVisualizerDst ) ;
251250
252- using ( Stream file = FS . FileSystem . File . Create ( debuggerVisualizerDst ) )
251+ using ( Stream file = FS . FileSystem . File . OpenWrite ( debuggerVisualizerDst ) )
253252 {
254253 _debuggerVisualizerAssembly . Name . Name = fileName ;
255254 _debuggerVisualizerAssembly . Write ( file , _writerParameters ) ;
@@ -280,6 +279,8 @@ private static string FromCilToTypeName(string fullName)
280279
281280 public void Dispose ( )
282281 {
282+ _assemblyStream . Dispose ( ) ;
283+
283284 _debuggerVisualizerAssembly ? . Dispose ( ) ;
284285 }
285286 }
0 commit comments