Skip to content

Commit

Permalink
Changed a cross-wired dependency
Browse files Browse the repository at this point in the history
The IHttpContextAccessor is obviously a singleton, so this wouldn't
explain why not to register it as singleton.
  • Loading branch information
dotnetjunkie committed Oct 11, 2016
1 parent 6831c4c commit b149ab0
Show file tree
Hide file tree
Showing 6 changed files with 12 additions and 7 deletions.
3 changes: 2 additions & 1 deletion src/SampleApplication.Autofac/Startup.cs
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc.ViewFeatures.Internal;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging;
Expand Down Expand Up @@ -79,7 +80,7 @@ private static IContainer RegisterApplicationComponents(IApplicationBuilder app,
builder.RegisterType<CustomMiddleware>();

// Cross-wire required framework services
builder.Register(_ => app.GetRequiredRequestService<IHttpContextAccessor>());
builder.Register(_ => app.GetRequiredRequestService<IViewBufferScope>());
builder.RegisterInstance(loggerFactory);

return builder.Build();
Expand Down
3 changes: 2 additions & 1 deletion src/SampleApplication.CastleWindsor/Startup.cs
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc.ViewFeatures.Internal;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging;
Expand Down Expand Up @@ -71,7 +72,7 @@ private void RegisterApplicationComponents(IApplicationBuilder app, ILoggerFacto
container.Register(Component.For<CustomMiddleware>());

// Cross-wire required framework services
RegisterFactoryMethod(app.GetRequestService<IHttpContextAccessor>);
RegisterFactoryMethod(app.GetRequestService<IViewBufferScope>);
container.Register(Component.For<ILoggerFactory>().Instance(loggerFactory));
}

Expand Down
3 changes: 2 additions & 1 deletion src/SampleApplication.Ninject/Startup.cs
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc.ViewFeatures.Internal;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging;
Expand Down Expand Up @@ -78,7 +79,7 @@ private IReadOnlyKernel RegisterApplicationComponents(IApplicationBuilder app, I
config.Bind<CustomMiddleware>().ToSelf();

// Cross-wire required framework services
config.BindToMethod(app.GetRequestService<IHttpContextAccessor>);
config.BindToMethod(app.GetRequestService<IViewBufferScope>);
config.Bind<ILoggerFactory>().ToConstant(loggerFactory);

return config.BuildReadonlyKernel();
Expand Down
3 changes: 2 additions & 1 deletion src/SampleApplication.SimpleInjector/Startup.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc.ViewFeatures.Internal;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging;
Expand Down Expand Up @@ -73,7 +74,7 @@ private void RegisterApplicationComponents(IApplicationBuilder app, ILoggerFacto
container.Register<CustomMiddleware>();

// Cross-wire required framework services
container.RegisterSingleton<Func<IHttpContextAccessor>>(() => app.GetRequestService<IHttpContextAccessor>());
container.RegisterSingleton<Func<IViewBufferScope>>(() => app.GetRequestService<IViewBufferScope>());
container.RegisterSingleton(loggerFactory);

container.Verify();
Expand Down
4 changes: 2 additions & 2 deletions src/SampleApplication.StructureMap/Startup.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
using System.Threading;
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc.ViewFeatures.Internal;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging;
Expand Down Expand Up @@ -72,7 +72,7 @@ private void RegisterApplicationComponents(IApplicationBuilder app, ILoggerFacto

// Cross-wire required framework services
c.For<ILoggerFactory>().Use(loggerFactory);
c.For<IHttpContextAccessor>().Use(_ => app.GetRequestService<IHttpContextAccessor>());
c.For<IViewBufferScope>().Use(_ => app.GetRequestService<IViewBufferScope>());
});
}
}
Expand Down
3 changes: 2 additions & 1 deletion src/SampleApplication.Unity/Startup.cs
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc.ViewFeatures.Internal;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging;
Expand Down Expand Up @@ -75,7 +76,7 @@ private void RegisterApplicationComponents(IApplicationBuilder app, ILoggerFacto

// Cross-wire required framework services
container.RegisterInstance(loggerFactory);
container.RegisterType<IHttpContextAccessor>(new InjectionFactory(c => app.GetRequestService<IHttpContextAccessor>()));
container.RegisterType<IViewBufferScope>(new InjectionFactory(c => app.GetRequestService<IViewBufferScope>()));
}

private static HierarchicalLifetimeManager PerRequest = new HierarchicalLifetimeManager();
Expand Down

0 comments on commit b149ab0

Please sign in to comment.