using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Logging; namespace Femto.Common; /// /// We use this to bind a scope to the request scope in the composition root /// Any scoped services provided by this subcontainer should be accessed via a ScopeBinding injected in the host /// /// public class ScopeBinding(IServiceScope scope) : IDisposable where T : notnull { public T GetService() { return scope.ServiceProvider.GetRequiredService(); } public void Dispose() { scope.Dispose(); } }