diff --git a/DigitalData.UserManager.API/LazyServiceProvider.cs b/DigitalData.UserManager.API/LazyServiceProvider.cs new file mode 100644 index 0000000..dd3817a --- /dev/null +++ b/DigitalData.UserManager.API/LazyServiceProvider.cs @@ -0,0 +1,18 @@ +namespace DigitalData.UserManager.API; + +public class LazyServiceProvider : IServiceProvider +{ + private Lazy? _serviceProvider; + + public Func Factory + { + set => _serviceProvider = new(value); + } + + public object? GetService(Type serviceType) + { + if (_serviceProvider is null) + throw new InvalidOperationException("GetService cannot be called before _serviceProvider is set."); + return _serviceProvider.Value.GetService(serviceType); + } +}