21 lines
608 B
C#
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();
|
|
}
|
|
}
|