Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/29.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 在web场上使用Windsor容器_Asp.net_Asp.net Mvc_Castle Windsor - Fatal编程技术网

Asp.net 在web场上使用Windsor容器

Asp.net 在web场上使用Windsor容器,asp.net,asp.net-mvc,castle-windsor,Asp.net,Asp.net Mvc,Castle Windsor,我正在使用ASP.NET MVC开发一个web应用程序,我正在使用Windsor Castle作为WindsorController Factory和我的内部组件的IoC容器。目前,我正在创建容器并将其存储到应用程序HttpApplicationState中,如下所示: protected void Application_Start() { ... IWindsorContainer windsorContainer = new WindsorC

我正在使用ASP.NET MVC开发一个web应用程序,我正在使用Windsor Castle作为WindsorController Factory和我的内部组件的IoC容器。目前,我正在创建容器并将其存储到应用程序HttpApplicationState中,如下所示:

    protected void Application_Start()
    {
        ...
        IWindsorContainer windsorContainer = new WindsorContainer();
        Application["WindsorContainer"] = windsorContainer;
        ...
    }

    protected void Application_End()
    {
        IWindsorContainer container = (IWindsorContainer)Application["WindsorContainer"];
        container.Dispose();

        Application["WindsorContainer"] = null;
    }
对于将在Web场上运行的应用程序,这是一种合适的方法吗?有什么我需要注意的问题吗?有更好的地方放集装箱吗


我知道应用程序状态不会在web场中的服务器之间共享,但我认为只要存储在应用程序状态中的数据不是特定于请求的,这应该不会是一个问题

我更喜欢将容器存储在类似Ayende的文件中

横切关注点可以比通过将代码与静态引用耦合更优雅地解决,但无论如何,这与我的要求没有多大关系。即使您确实使用静态网关,它也不会在请求之间被保留。这是对您的问题的回答,是否有更好的地方放置容器?。无论如何,容器通常不会向应用程序的其余部分公开,因此不会有太大的区别。使用静态IoC确实可以跨请求保存它,因为它在内部存储在一个静态变量中。。。