<%@ Application Inherits="MvpSample.Web.MvpSampleHttpApplication" Language="C#" %>
using System;
using System.Web;
using Castle.Windsor;
using Castle.Windsor.Configuration.Interpreters;
namespace MvpSample.Web

{
/**//// <summary>
/// Summary description for MvpHttpApplication
/// </summary>
public class 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>
public static IWindsorContainer WindsorContainer
{
get
{ return windsorContainer; }
}

/**//// <summary>
/// Code that runs on application startup
/// </summary>
public void 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());
}

public void Application_End(object sender, EventArgs e)
{
windsorContainer.Dispose();
}

public void Application_Error(object sender, EventArgs e)
{ }

public void 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>
public void Session_End(object sender, EventArgs e)
{
}

/**//// <summary>
/// Gets instantiated on <see cref="Application_Start" />.
/// </summary>
private static IWindsorContainer windsorContainer;
}
}顺便介绍一个好用的工具
强类型方式解析asp.net 页面之间的参数,叫做PageMethods