@@ -25,12 +25,12 @@ public sealed class LazyAssemblyLoader
25
25
internal const string ReadDynamicAssemblies = "window.Blazor._internal.readLazyAssemblies" ;
26
26
27
27
private readonly IJSRuntime _jsRuntime ;
28
- private readonly Dictionary < string , Assembly > _loadedAssemblyCache ;
28
+ private readonly HashSet < string > _loadedAssemblyCache ;
29
29
30
30
public LazyAssemblyLoader ( IJSRuntime jsRuntime )
31
31
{
32
32
_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 ( ) ;
34
34
}
35
35
36
36
/// <summary>
@@ -77,7 +77,7 @@ private async Task<IEnumerable<Assembly>> LoadAssembliesInClientAsync(IEnumerabl
77
77
// to see if it throws FileNotFound to ensure that an assembly hasn't been loaded
78
78
// between when the cache of loaded assemblies was instantiated in the constructor
79
79
// and the invocation of this method.
80
- var newAssembliesToLoad = assembliesToLoad . Except ( _loadedAssemblyCache . Keys ) ;
80
+ var newAssembliesToLoad = assembliesToLoad . Where ( assembly => ! _loadedAssemblyCache . Contains ( assembly ) ) ;
81
81
var loadedAssemblies = new List < Assembly > ( ) ;
82
82
83
83
var count = ( int ) await ( ( WebAssemblyJSRuntime ) _jsRuntime ) . InvokeUnmarshalled < string [ ] , object , object , Task < object > > (
@@ -105,7 +105,7 @@ private async Task<IEnumerable<Assembly>> LoadAssembliesInClientAsync(IEnumerabl
105
105
// into the default app context.
106
106
var loadedAssembly = AssemblyLoadContext . Default . LoadFromStream ( new MemoryStream ( assembly ) ) ;
107
107
loadedAssemblies . Add ( loadedAssembly ) ;
108
- _loadedAssemblyCache . Add ( loadedAssembly . GetName ( ) . Name + ".dll" , loadedAssembly ) ;
108
+ _loadedAssemblyCache . Add ( loadedAssembly . GetName ( ) . Name + ".dll" ) ;
109
109
}
110
110
111
111
return loadedAssemblies ;
0 commit comments