public static IAppBuilder UseRequestContextItem <TItem>(this IAppBuilder builder, IHttpContextProvider httpContextProvider, Func <TItem> factory, bool disposeOfAtEndOfRequest, Action <TItem> onInstanceCreated) where TItem : IDisposable { var options = new SetRequestContextItemMiddlewareOptions <TItem>() { HttpContextProvider = httpContextProvider, Factory = factory, DisposeAtEndOfRequest = disposeOfAtEndOfRequest, OnInstanceCreated = onInstanceCreated }; builder.Use(typeof(SetRequestContextItemMiddleware <TItem>), options); return(builder); }
public static MultitenancyMiddlewareOptionsBuilder <TTenant> UseRequestContextItem <TTenant, TItem>(this MultitenancyMiddlewareOptionsBuilder <TTenant> builder, Func <TItem> factory, bool disposeOfAtEndOfRequest, Action <TItem> onInstanceCreated = null) where TItem : IDisposable { var httpContextProvider = builder.ApplicationBuilder.ApplicationServices.GetRequiredService <IHttpContextProvider>(); var options = new SetRequestContextItemMiddlewareOptions <TItem>() { HttpContextProvider = httpContextProvider, Factory = factory, DisposeAtEndOfRequest = disposeOfAtEndOfRequest, OnInstanceCreated = onInstanceCreated }; builder.ApplicationBuilder.UseMiddleware <SetRequestContextItemMiddleware <TItem> >(options); return(builder); }