This commit is contained in:
Mira 2023-06-07 00:10:49 +02:00
parent b124e19a87
commit 1d6e9c32ba
Signed by untrusted user who does not match committer: Xorog
GPG key ID: 983798ED9C3E7C36
4 changed files with 50 additions and 13 deletions

13
Enums/TimeFormat.cs Normal file
View file

@ -0,0 +1,13 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Xorog.UniversalExtensions.Enums;
public enum TimeFormat
{
MINUTES,
HOURS,
DAYS
}

View file

@ -7,8 +7,8 @@ global using System.Text;
global using System.Threading.Tasks;
global using System.Drawing;
global using Microsoft.Extensions.Logging;
global using Xorog.UniversalExtensions.Enums;
global using static Xorog.UniversalExtensions.UniversalExtensionsEnums;
global using static Xorog.UniversalExtensions.Internal;
global using static Xorog.UniversalExtensions.InternalSheduler;
global using static Xorog.UniversalExtensions.Log;

View file

@ -1,11 +0,0 @@
namespace Xorog.UniversalExtensions;
public class UniversalExtensionsEnums
{
public enum TimeFormat
{
MINUTES,
HOURS,
DAYS
}
}

View file

@ -1,7 +1,42 @@
namespace Xorog.UniversalExtensions;
using System.Reflection;
namespace Xorog.UniversalExtensions;
public static class UniversalExtensions
{
public static void LoadAllReferencedAssemblies(AppDomain domain)
{
_logger?.LogDebug("Loading all assemblies..");
var assemblyCount = 0;
foreach (Assembly assembly in domain.GetAssemblies())
{
LoadReferencedAssembly(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>
/// Attaches a logger to UniversalExtensions. Used for Debug purposes.
/// </summary>