Пример #1
0
 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
     });
 }
Пример #2
0
        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);
        }
Пример #3
0
        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);
            }
        }
Пример #7
0
 protected virtual void Application_EndRequest(object sender, EventArgs e)
 {
     PerWebRequestLifestyleModule.EndRequest(sender, e);
 }