@@ -94,6 +94,11 @@ public IDictionary ToResolverCache ()
9494 }
9595
9696 public virtual AssemblyDefinition Load ( string fileName )
97+ {
98+ return Load ( fileName , null ) ;
99+ }
100+
101+ public virtual AssemblyDefinition Load ( string fileName , ReaderParameters parameters )
97102 {
98103 if ( ! File . Exists ( fileName ) )
99104 return null ;
@@ -104,29 +109,28 @@ public virtual AssemblyDefinition Load (string fileName)
104109 return assembly ;
105110
106111 try {
107- assembly = ReadAssembly ( fileName ) ;
112+ assembly = ReadAssembly ( fileName , parameters ) ;
108113 } catch ( Exception e ) {
109114 Diagnostic . Error ( 9 , e , "Error while loading assembly: {0}" , fileName ) ;
110115 }
111116 cache . Add ( name , assembly ) ;
112117 return assembly ;
113118 }
114119
115- protected virtual AssemblyDefinition ReadAssembly ( string file )
120+ protected virtual AssemblyDefinition ReadAssembly ( string file , ReaderParameters parameters )
116121 {
117- var reader_parameters = new ReaderParameters ( ) {
118- AssemblyResolver = this ,
119- ReadSymbols = loadDebugSymbols && ( File . Exists ( file + ".mdb" ) || File . Exists ( Path . ChangeExtension ( file , ".pdb" ) ) ) ,
120- } ;
122+ parameters = parameters ?? new ReaderParameters ( ) ;
123+ parameters . AssemblyResolver = this ;
124+ parameters . ReadSymbols = loadDebugSymbols && ( File . Exists ( file + ".mdb" ) || File . Exists ( Path . ChangeExtension ( file , ".pdb" ) ) ) ;
121125 try {
122- return AssemblyDefinition . ReadAssembly ( file , reader_parameters ) ;
126+ return AssemblyDefinition . ReadAssembly ( file , parameters ) ;
123127 } catch ( Exception ex ) {
124128 logWarnings (
125129 "Failed to read '{0}' with debugging symbols. Retrying to load it without it. Error details are logged below." ,
126130 new [ ] { file } ) ;
127131 logWarnings ( "{0}" , new [ ] { ex . ToString ( ) } ) ;
128- reader_parameters . ReadSymbols = false ;
129- return AssemblyDefinition . ReadAssembly ( file , reader_parameters ) ;
132+ parameters . ReadSymbols = false ;
133+ return AssemblyDefinition . ReadAssembly ( file , parameters ) ;
130134 }
131135 }
132136
@@ -135,6 +139,11 @@ public AssemblyDefinition GetAssembly (string fileName)
135139 return Resolve ( Path . GetFileNameWithoutExtension ( fileName ) ) ;
136140 }
137141
142+ public AssemblyDefinition GetAssembly ( string fileName , ReaderParameters parameters )
143+ {
144+ return Resolve ( Path . GetFileNameWithoutExtension ( fileName ) , parameters ) ;
145+ }
146+
138147 public AssemblyDefinition Resolve ( string fullName )
139148 {
140149 return Resolve ( fullName , null ) ;
@@ -187,7 +196,7 @@ public AssemblyDefinition Resolve (AssemblyNameReference reference, ReaderParame
187196 AssemblyDefinition candidate = null ;
188197 foreach ( var dir in SearchDirectories ) {
189198 if ( ( assemblyFile = SearchDirectory ( name , dir ) ) != null ) {
190- var loaded = Load ( assemblyFile ) ;
199+ var loaded = Load ( assemblyFile , parameters ) ;
191200 if ( Array . Equals ( loaded . Name . MetadataToken , reference . MetadataToken ) )
192201 return loaded ;
193202 candidate = candidate ?? loaded ;
0 commit comments