Skip to content

Commit 66e152e

Browse files
committed
Be more careful in AssemblyResolve in case of re-entrancy
1 parent c14eb9a commit 66e152e

File tree

1 file changed

+4
-4
lines changed

1 file changed

+4
-4
lines changed

Source/ExcelDna.Loader/AssemblyManager.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -65,16 +65,16 @@ private static Assembly AssemblyResolve(object sender, ResolveEventArgs args)
6565
}
6666

6767
// Check our AssemblyResolve cache
68-
if (loadedAssemblies.ContainsKey(name))
69-
return loadedAssemblies[name];
68+
if (loadedAssemblies.TryGetValue(name, out loadedAssembly))
69+
return loadedAssembly;
7070

7171
// Check if it is loaded in the AppDomain already,
7272
// e.g. from resources as an ExternalLibrary
7373
loadedAssembly = GetAssemblyIfLoaded(assemblyName);
7474
if (loadedAssembly != null)
7575
{
7676
Logger.Initialization.Info("Assembly {0} was found to already be loaded into the AppDomain.", name);
77-
loadedAssemblies.Add(name, loadedAssembly);
77+
loadedAssemblies[name] = loadedAssembly;
7878
return loadedAssembly;
7979
}
8080

@@ -106,7 +106,7 @@ private static Assembly AssemblyResolve(object sender, ResolveEventArgs args)
106106
{
107107
loadedAssembly = Assembly.Load(assemblyBytes);
108108
Logger.Initialization.Info("Assembly Loaded from bytes. FullName: {0}", loadedAssembly.FullName);
109-
loadedAssemblies.Add(name, loadedAssembly);
109+
loadedAssemblies[name] = loadedAssembly;
110110
return loadedAssembly;
111111
}
112112
catch (Exception e)

0 commit comments

Comments
 (0)