- fix validation of open generic type registrations

master
Simon G. 12 months ago
parent 46c847dd39
commit 5d8c122476
Signed by: SimonG
GPG Key ID: 0B82B964BA536523
  1. 15
      LightweightIocContainer.Validation/IocValidator.cs

@ -60,6 +60,21 @@ public class IocValidator(IocContainer iocContainer)
private void TryResolve(Type type, object?[]? arguments, List<Exception> validationExceptions, bool isFactoryResolve = false)
{
if (type.ContainsGenericParameters)
{
List<Type> genericParameters = [];
Type[] genericArguments = type.GetGenericArguments();
foreach (Type genericArgument in genericArguments.Where(g => g.IsGenericParameter))
{
Type[] genericParameterConstraints = genericArgument.GetGenericParameterConstraints();
object mock = Substitute.For(genericParameterConstraints, []);
genericParameters.Add(mock.GetType());
}
type = type.MakeGenericType(genericParameters.ToArray());
}
(bool success, object _, Exception? exception) = iocContainer.TryResolveNonGeneric(type, arguments, null, isFactoryResolve);
if (success)
return;

Loading…
Cancel
Save