Castle.Windsor의 Container를 제공하는 HttpApplication 입니다.
IoC와 관련한 초기화를 수행해 준다. Web Application의 global.asax에서 Inherits="NSoft.NFramework.Web.IocHttpApplication" 를 추가하면 됩니다.
상속: System.Web.HttpApplication, IContainerAccessor
        public void MultiThreadTesting() {
            TestTool.RunTasks(3,
                              () => {
                                  for(var n = 0; n < 3; n++) {
                                      var app = new UnitOfWorkHttpApplication();

                                      Assert.IsNotNull(app);

                                      for(int i = 0; i < 5; i++) {
                                          //app.OnBeginRequest(this, EventArgs.Empty);

                                          Assert.IsTrue(IoC.IsInitialized);
                                          Assert.IsNotNull(IoC.Container);

                                          // UnitOfWorkHttpApplication에 제대로 된 요청이 있어야만 UnitOfWork가 시작됩니다. (aspx 나 ashx, ascx 등 script)
                                          Assert.IsFalse(UnitOfWork.IsStarted);

                                          log.Debug("사용자 요청을 처리중입니다.........");

                                          Thread.Sleep(1);

                                          //app.OnEndRequest(this, EventArgs.Empty);

                                          log.Debug("사용자 요청을 처리를 완료했습니다.");
                                      }

                                      var app2 = new WindsorHttpApplication();

                                      Assert.IsNotNull(app2);

                                      for(int i = 0; i < 5; i++) {
                                          //app2.OnBeginRequest(this, EventArgs.Empty);

                                          Assert.IsTrue(IoC.IsInitialized);
                                          Assert.IsNotNull(IoC.Container);

                                          log.Debug("사용자 요청을 처리중입니다.........");

                                          Thread.Sleep(1);

                                          //app2.OnEndRequest(this, EventArgs.Empty);

                                          log.Debug("사용자 요청을 처리를 완료했습니다.");
                                      }
                                  }
                              });
        }
예제 #2
0
        public void Can_IoCHttpApplication_Initialized()
        {
            using (var app = new WindsorHttpApplication()) {
                Assert.IsNotNull(app);

                for (var i = 0; i < RequestCount; i++)
                {
                    //app.OnBeginRequest(this, EventArgs.Empty);

                    Assert.IsNotNull(app.Container);
                    Assert.IsTrue(IoC.IsInitialized);

                    Thread.Sleep(1);

                    if (IsDebugEnabled)
                    {
                        log.Debug("요청 사항 처리 중");
                    }

                    // app.OnEndRequest(this, EventArgs.Empty);
                }
            }

            using (var app = new WindsorHttpApplication()) {
                Assert.IsNotNull(app);

                for (var i = 0; i < RequestCount; i++)
                {
                    //app.OnBeginRequest(this, EventArgs.Empty);

                    Assert.IsNotNull(app.Container);
                    Assert.IsTrue(IoC.IsInitialized);

                    Thread.Sleep(1);

                    if (IsDebugEnabled)
                    {
                        log.Debug("요청 사항 처리 중");
                    }

                    //app.OnEndRequest(this, EventArgs.Empty);
                }
            }
        }
        public void Can_IoCHttpApplication_Initialized() {
            using(var app = new WindsorHttpApplication()) {
                Assert.IsNotNull(app);

                for(var i = 0; i < RequestCount; i++) {
                    //app.OnBeginRequest(this, EventArgs.Empty);

                    Assert.IsNotNull(app.Container);
                    Assert.IsTrue(IoC.IsInitialized);

                    Thread.Sleep(1);

                    if(IsDebugEnabled)
                        log.Debug("요청 사항 처리 중");

                    // app.OnEndRequest(this, EventArgs.Empty);
                }
            }

            using(var app = new WindsorHttpApplication()) {
                Assert.IsNotNull(app);

                for(var i = 0; i < RequestCount; i++) {
                    //app.OnBeginRequest(this, EventArgs.Empty);

                    Assert.IsNotNull(app.Container);
                    Assert.IsTrue(IoC.IsInitialized);

                    Thread.Sleep(1);

                    if(IsDebugEnabled)
                        log.Debug("요청 사항 처리 중");

                    //app.OnEndRequest(this, EventArgs.Empty);
                }
            }
        }