protected virtual void Application_EndRequest(object sender, EventArgs e) { PerWebRequestLifestyleModule.EndRequest(sender, e); requestWatch.Stop(); LogHelper.Log(new LogModel() { Message = $"Framework request url:{HttpContext.Current.Request.Url.AbsolutePath} time:" + requestWatch.ElapsedMilliseconds + "ms", LogSeverity = LogSeverity.Info }); }
public void SetUp() { container = new WindsorContainer() .Register(Component.For <INHibernateInstaller>().ImplementedBy <ExampleInstaller>()) .AddFacility <AutoTxFacility>() .AddFacility <NHibernateFacility>( fac => fac.DefaultLifeStyle = DefaultSessionLifeStyleOption.SessionPerWebRequest); var app = new HttpApplication(); var lifestyle = new PerWebRequestLifestyleModule(); lifestyle.Init(app); }
public void TestFixtureSetup() { //Hackery in order to get the PerWebRequest lifecycle working in a test environment //Surely there must be a better way to do this? HttpContext.Current = new HttpContext(new HttpRequest("foo", "http://localhost", ""), new HttpResponse(new StringWriter())) { ApplicationInstance = new HttpApplication() }; var module = new PerWebRequestLifestyleModule(); module.Init(HttpContext.Current.ApplicationInstance); container = ContainerBuilder.Build("Windsor.config"); container.Install(FromAssembly.Containing <HomeController>()); }
public void PerWebRequestLifestyleManagerTest() { var tw = new StringWriter(); var wr = new SimpleWorkerRequest("/", Directory.GetCurrentDirectory(), "default.aspx", null, tw); var module = new PerWebRequestLifestyleModule(); var ctx = HttpModuleRunner.GetContext(wr, new[] { module }); HttpContext.Current = ctx.Key; using (var kernel = new DefaultKernel()) { kernel.Register(Component.For<object>().LifeStyle.PerWebRequest); var instance1 = kernel.Resolve<object>(); Assert.IsNotNull(instance1); var instance2 = kernel.Resolve<object>(); Assert.IsNotNull(instance2); Assert.AreSame(instance1, instance2); } }
public void With_context_uses_context() { var tw = new StringWriter(); var wr = new SimpleWorkerRequest("/", Directory.GetCurrentDirectory(), "default.aspx", null, tw); var module = new PerWebRequestLifestyleModule(); var ctx = HttpModuleRunner.GetContext(wr, new[] { module }); HttpContext.Current = ctx.Key; using (var k = new DefaultKernel()) { k.Register(Component.For<Dummy>().LifeStyle.HybridPerWebRequestTransient()); var d1 = k.Resolve<Dummy>(); Assert.IsNotNull(d1); var d2 = k.Resolve<Dummy>(); Assert.IsNotNull(d2); Assert.AreSame(d1, d2); ctx.Value.FireEndRequest(); ctx.Key.Items["castle.per-web-request-lifestyle-cache"] = null; var d3 = k.Resolve<Dummy>(); Assert.AreNotSame(d1, d3); } }
public void With_context_uses_context() { var tw = new StringWriter(); var wr = new SimpleWorkerRequest("/", Directory.GetCurrentDirectory(), "default.aspx", null, tw); var module = new PerWebRequestLifestyleModule(); var ctx = HttpModuleRunner.GetContext(wr, new[] { module }); HttpContext.Current = ctx.Key; using (var k = new DefaultKernel()) { k.Register(Component.For <Dummy>().LifeStyle.HybridPerWebRequestTransient()); var d1 = k.Resolve <Dummy>(); Assert.IsNotNull(d1); var d2 = k.Resolve <Dummy>(); Assert.IsNotNull(d2); Assert.AreSame(d1, d2); ctx.Value.FireEndRequest(); ctx.Key.Items["castle.per-web-request-lifestyle-cache"] = null; var d3 = k.Resolve <Dummy>(); Assert.AreNotSame(d1, d3); } }
protected virtual void Application_EndRequest(object sender, EventArgs e) { PerWebRequestLifestyleModule.EndRequest(sender, e); }