@@ -25,12 +25,12 @@ public sealed class LazyAssemblyLoader
2525 internal const string ReadDynamicAssemblies = "window.Blazor._internal.readLazyAssemblies" ;
2626
2727 private readonly IJSRuntime _jsRuntime ;
28- private readonly Dictionary < string , Assembly > _loadedAssemblyCache ;
28+ private readonly HashSet < string > _loadedAssemblyCache ;
2929
3030 public LazyAssemblyLoader ( IJSRuntime jsRuntime )
3131 {
3232 _jsRuntime = jsRuntime ;
33- _loadedAssemblyCache = AppDomain . CurrentDomain . GetAssemblies ( ) . ToDictionary ( assembly => assembly . GetName ( ) . Name + ".dll" , assembly => assembly ) ;
33+ _loadedAssemblyCache = AppDomain . CurrentDomain . GetAssemblies ( ) . Select ( a => a . GetName ( ) . Name + ".dll" ) . ToHashSet ( ) ;
3434 }
3535
3636 /// <summary>
@@ -77,7 +77,7 @@ private async Task<IEnumerable<Assembly>> LoadAssembliesInClientAsync(IEnumerabl
7777 // to see if it throws FileNotFound to ensure that an assembly hasn't been loaded
7878 // between when the cache of loaded assemblies was instantiated in the constructor
7979 // and the invocation of this method.
80- var newAssembliesToLoad = assembliesToLoad . Except ( _loadedAssemblyCache . Keys ) ;
80+ var newAssembliesToLoad = assembliesToLoad . Where ( assembly => ! _loadedAssemblyCache . Contains ( assembly ) ) ;
8181 var loadedAssemblies = new List < Assembly > ( ) ;
8282
8383 var count = ( int ) await ( ( WebAssemblyJSRuntime ) _jsRuntime ) . InvokeUnmarshalled < string [ ] , object , object , Task < object > > (
@@ -105,7 +105,7 @@ private async Task<IEnumerable<Assembly>> LoadAssembliesInClientAsync(IEnumerabl
105105 // into the default app context.
106106 var loadedAssembly = AssemblyLoadContext . Default . LoadFromStream ( new MemoryStream ( assembly ) ) ;
107107 loadedAssemblies . Add ( loadedAssembly ) ;
108- _loadedAssemblyCache . Add ( loadedAssembly . GetName ( ) . Name + ".dll" , loadedAssembly ) ;
108+ _loadedAssemblyCache . Add ( loadedAssembly . GetName ( ) . Name + ".dll" ) ;
109109 }
110110
111111 return loadedAssemblies ;
0 commit comments