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