This is just Jetbrains formatting and code syntax styling

This commit is contained in:
CWX
2025-02-05 06:56:51 +00:00
parent ce78a2231e
commit f648f42721
382 changed files with 6348 additions and 10422 deletions
@@ -6,6 +6,9 @@ namespace SptDependencyInjection;
public static class DependencyInjectionRegistrator
{
private static List<Type>? _allLoadedTypes;
private static List<ConstructorInfo>? _allConstructors;
public static void RegisterModOverrideComponents(IServiceCollection builderServices, List<Assembly> assemblies)
{
// We get all the services from this assembly first, since mods will override them later
@@ -28,14 +31,9 @@ public static class DependencyInjectionRegistrator
{
// if we have a type override this takes priority
if (attribute.InjectableTypeOverride != null)
{
registerableType = attribute.InjectableTypeOverride;
}
// if this class only has 1 interface we register it on that interface
else if (registerableType.GetInterfaces().Length == 1)
{
registerableType = registerableType.GetInterfaces()[0];
}
else if (registerableType.GetInterfaces().Length == 1) registerableType = registerableType.GetInterfaces()[0];
registerableComponents.Add(new RegisterableType(registerableType, t, attribute));
}
@@ -46,25 +44,18 @@ public static class DependencyInjectionRegistrator
.GroupBy(t => t.RegisterableInterface.FullName);
// We get all injectable services to register them on our services
foreach (var groupedInjectables in groupedTypes)
{
foreach (var valueTuple in groupedInjectables.OrderBy(t => t.InjectableAttribute.TypePriority))
{
if (valueTuple.TypeToRegister.IsGenericType)
RegisterGenericComponents(builderServices, valueTuple);
else
RegisterComponent(
builderServices,
valueTuple.InjectableAttribute.InjectionType,
valueTuple.RegisterableInterface,
valueTuple.TypeToRegister
);
}
}
foreach (var valueTuple in groupedInjectables.OrderBy(t => t.InjectableAttribute.TypePriority))
if (valueTuple.TypeToRegister.IsGenericType)
RegisterGenericComponents(builderServices, valueTuple);
else
RegisterComponent(
builderServices,
valueTuple.InjectableAttribute.InjectionType,
valueTuple.RegisterableInterface,
valueTuple.TypeToRegister
);
}
private static List<Type>? _allLoadedTypes;
private static List<ConstructorInfo>? _allConstructors;
private static void RegisterGenericComponents(IServiceCollection builderServices, RegisterableType valueTuple)
{
_allLoadedTypes ??= AppDomain.CurrentDomain.GetAssemblies().SelectMany(t => t.GetTypes()).ToList();
@@ -85,22 +76,20 @@ public static class DependencyInjectionRegistrator
if (constructorInfos.Count == 0) return;
foreach (var matchedConstructor in constructorInfos)
foreach (var parameterInfo in matchedConstructor.GetParameters()
.Where(
p => p.ParameterType.IsGenericType &&
p.ParameterType.GetGenericTypeDefinition().FullName == typeName
))
{
foreach (var parameterInfo in matchedConstructor.GetParameters()
.Where(
p => p.ParameterType.IsGenericType &&
p.ParameterType.GetGenericTypeDefinition().FullName == typeName
))
{
var parameters = parameterInfo.ParameterType.GetGenericArguments();
var typedGeneric = valueTuple.TypeToRegister.MakeGenericType(parameters);
RegisterComponent(
builderServices,
valueTuple.InjectableAttribute.InjectionType,
parameterInfo.ParameterType,
typedGeneric
);
}
var parameters = parameterInfo.ParameterType.GetGenericArguments();
var typedGeneric = valueTuple.TypeToRegister.MakeGenericType(parameters);
RegisterComponent(
builderServices,
valueTuple.InjectableAttribute.InjectionType,
parameterInfo.ParameterType,
typedGeneric
);
}
}
catch (Exception e)
@@ -150,7 +139,7 @@ public static class DependencyInjectionRegistrator
);
}
class RegisterableType(Type registerableInterface, Type typeToRegister, Injectable injectableAttribute)
private class RegisterableType(Type registerableInterface, Type typeToRegister, Injectable injectableAttribute)
{
public Type RegisterableInterface { get; } = registerableInterface;
public Type TypeToRegister { get; } = typeToRegister;