Skip to content

Commit f98d0a4

Browse files
committed
Address feedback from peer review
1 parent b91904e commit f98d0a4

File tree

1 file changed

+6
-6
lines changed

1 file changed

+6
-6
lines changed

src/Components/WebAssembly/WebAssembly/src/Services/LazyAssemblyLoader.cs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -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>
@@ -51,7 +51,7 @@ public async Task<IEnumerable<Assembly>> LoadAssembliesAsync(IEnumerable<string>
5151
return await LoadAssembliesInServerAsync(assembliesToLoad);
5252
}
5353

54-
private async Task<IEnumerable<Assembly>> LoadAssembliesInServerAsync(IEnumerable<string> assembliesToLoad)
54+
private Task<IEnumerable<Assembly>> LoadAssembliesInServerAsync(IEnumerable<string> assembliesToLoad)
5555
{
5656
var loadedAssemblies = new List<Assembly>();
5757

@@ -67,7 +67,7 @@ private async Task<IEnumerable<Assembly>> LoadAssembliesInServerAsync(IEnumerabl
6767
throw new InvalidOperationException($"Unable to find the following assembly: {ex.FileName}. Make sure that the appplication is referencing the assemblies and that they are present in the output folder.");
6868
}
6969

70-
return await Task.FromResult(loadedAssemblies);
70+
return Task.FromResult<IEnumerable<Assembly>>(loadedAssemblies);
7171
}
7272

7373
private async Task<IEnumerable<Assembly>> LoadAssembliesInClientAsync(IEnumerable<string> assembliesToLoad)
@@ -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

Comments
 (0)