namespace Explorer.Hosting; public sealed class DeferredServiceProvider : IServiceProvider { private IServiceProvider? _inner; private readonly TaskCompletionSource _ready = new(TaskCreationOptions.RunContinuationsAsynchronously); public Task Ready => _ready.Task; public void Complete(IServiceProvider inner) { _inner = inner; _ready.TrySetResult(inner); } public object? GetService(Type serviceType) => _inner?.GetService(serviceType); }