feat: LoadAllReferencedAssemblies with AssemblyName[]
This commit is contained in:
parent
2e2211d998
commit
b59f83991e
1 changed files with 33 additions and 0 deletions
|
|
@ -51,6 +51,39 @@ public static class UniversalExtensions
|
||||||
_logger?.LogInformation("Loaded {assemblyCount} assemblies.", assemblyCount);
|
_logger?.LogInformation("Loaded {assemblyCount} assemblies.", assemblyCount);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void LoadAllReferencedAssemblies(params AssemblyName[] assemblies)
|
||||||
|
{
|
||||||
|
_logger?.LogDebug("Loading all assemblies..");
|
||||||
|
|
||||||
|
var assemblyCount = 0;
|
||||||
|
foreach (AssemblyName assembly in assemblies)
|
||||||
|
{
|
||||||
|
LoadReferencedAssembly(Assembly.Load(assembly));
|
||||||
|
}
|
||||||
|
|
||||||
|
void LoadReferencedAssembly(Assembly assembly)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
foreach (AssemblyName name in assembly.GetReferencedAssemblies())
|
||||||
|
{
|
||||||
|
if (!AppDomain.CurrentDomain.GetAssemblies().Any(a => a.FullName == name.FullName))
|
||||||
|
{
|
||||||
|
assemblyCount++;
|
||||||
|
_logger?.LogDebug("Loading {Name}..", name.Name);
|
||||||
|
LoadReferencedAssembly(Assembly.Load(name));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
_logger?.LogError("Failed to load an assembly", ex);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
_logger?.LogInformation("Loaded {assemblyCount} assemblies.", assemblyCount);
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Adds additional data to an exception.
|
/// Adds additional data to an exception.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue