femto-backend/Femto.Common/ScopeBinding.cs
2025-05-21 00:19:49 +02:00

21 lines
608 B
C#

using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging;
namespace Femto.Common;
/// <summary>
/// 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
/// </summary>
/// <param name="scope"></param>
public class ScopeBinding<T>(IServiceScope scope) : IDisposable
where T : notnull
{
public T GetService() {
return scope.ServiceProvider.GetRequiredService<T>();
}
public void Dispose() {
scope.Dispose();
}
}