Skip to content

Instantly share code, notes, and snippets.

@khellang
Last active August 29, 2015 14:14
Show Gist options
  • Save khellang/1c309da34d319685ef43 to your computer and use it in GitHub Desktop.
Save khellang/1c309da34d319685ef43 to your computer and use it in GitHub Desktop.
public interface IApplicationSingleton
{
void MethodCalledEachRequest();
}
public interface IRequestScopedService
{
void DoSomething();
}
public class ApplicationSingleton : IApplicationSingleton
{
private readonly Func<IRequestScopedService> _factory;
public ApplicationSingleton(Func<IRequestScopedService> factory)
{
_factory = factory;
}
public void MethodCalledEachRequest()
{
using (var requestScopedService = _factory.Invoke())
{
requestScopedFactory.DoSomething();
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment