MvpSampleHttpApplication 代码 using System; using System.Web; using Castle.Windsor; using Castle.Windsor.Configuration.Interpreters; namespace MvpSample.Web { /**////<summary> /// Summary description for MvpHttpApplication ///</summary> publicclass MvpSampleHttpApplication : HttpApplication, IContainerAccessor { /**////<summary> /// Implements <see cref="IContainerAccessor" /> so that Castle facilities /// can gain access to the <see cref="HttpApplication" />. ///</summary> public IWindsorContainer Container { get{ return windsorContainer; } } /**////<summary> /// Provides a globally available access to the <see cref="IWindsorContainer" /> instance. ///</summary> publicstatic IWindsorContainer WindsorContainer { get{ return windsorContainer; } } /**////<summary> /// Code that runs on application startup ///</summary> publicvoid Application_Start(object sender, EventArgs e) { // Initialize log4net here if you're using it // Create the Windsor Container for IoC. // Supplying "XmlInterpreter" as the parameter tells Windsor // to look at web.config for any necessary configuration. windsorContainer =new WindsorContainer(new XmlInterpreter()); } publicvoid Application_End(object sender, EventArgs e) { windsorContainer.Dispose(); } publicvoid Application_Error(object sender, EventArgs e) { } publicvoid Session_Start(object sender, EventArgs e) { } /**////<summary> /// ///</summary> ///<remarks> /// The Session_End event is raised only when the sessionstate mode /// is set to InProc in the Web.config file. If session mode is set to StateServer /// or SQLServer, the event is not raised. ///</remarks> publicvoid Session_End(object sender, EventArgs e) { } /**////<summary> /// Gets instantiated on <see cref="Application_Start" />. ///</summary> privatestatic IWindsorContainer windsorContainer; } }