2011-05-12 15 views
5

mvcForum projesinde (codeplex üzerinde) çalışıyorum ve global.asax dosyasından olabildiğince fazla kodu kaldırmak istiyorum - daha kolay entegre etmek Çok fazla kod değiştirmeden mevcut ASP.NET MVC uygulamasına mvcForum.ASP.NET MVC PostAuthorizeRequest (ve diğer olaylar) ateş etmiyor

Doğru CultureInfo'yu (kullanıcıların tercihine bağlı olarak) ve diğer şeyleri ayarlayabilmek için uygulama olaylarına girmem gerekiyor.

Bu Global.asax dosyasında bu bir sorun değildir:

protected void Application_PostAuthorizeRequest() { 
     // Some code here! 
} 

Ama başka bir yerde kodu hareketli çalıştığınızda, olay hiç olur. Yaptığım şey şudur: Her ne kadar bu tam olarak aynı şekilde çalışmak bekliyordum global.asax

protected void Application_Start() { 
     var strapper = new MVCForumBootstrapper(this); 
    } 

yılında

public MVCForumBootstrapper(HttpApplication app) { 
    app.PostAuthorizeRequest += new EventHandler(app_PostAuthorizeRequest); 
} 

Ve bu?

Neyi yanlış yapıyorum/kaçırdım mı?

sayesinde Steen

cevap

6

Sen Global.asax içinde Init yönteminde yapmalısınız. Application_Start'da çok geç çok fazla kanca olayları var:

public override void Init() 
{ 
    base.Init(); 
    var strapper = new MVCForumBootstrapper(this); 
} 
+0

Elbette HttpModules'de olduğu gibi. Teşekkür ederim! –