C# 在项目之间共享castle windsor容器asp.net mvc

C# 在项目之间共享castle windsor容器asp.net mvc,c#,asp.net,asp.net-mvc,solr,castle-windsor,C#,Asp.net,Asp.net Mvc,Solr,Castle Windsor,我有一个asp.net mvc web项目,我已经在global.asax应用程序启动中初始化了我的windsor容器。我的solrnet设备需要这个容器 private static IWindsorContainer _container; private static IWindsorContainer Container { get{ if (_container == null) {

我有一个asp.net mvc web项目,我已经在global.asax应用程序启动中初始化了我的windsor容器。我的solrnet设备需要这个容器

private static IWindsorContainer _container;
        private static IWindsorContainer Container {
            get{
                if (_container == null)
                {
                    throw new Exception("The container in global application object is null");
                }
                return _container;
            } 
        }

    IWindsorContainer IContainerAccessor.Container
    {
        get {
            return Container;
        }
    }

protected void Application_Start()
    {
        AreaRegistration.RegisterAllAreas();
        RegisterGlobalFilters(GlobalFilters.Filters);
        RegisterRoutes(RouteTable.Routes);
        WebApiConfig.Register(GlobalConfiguration.Configuration);

        if  (_container == null)
        {
            _container = new WindsorContainer();
        }
    }
在我的库项目中,我定义了一个类IOC

using System.Web;
using Castle.Windsor;

namespace Collette.Library
{
    public static class IOC
    {
        public static IWindsorContainer Container {
            get
            {
                IContainerAccessor containerAccessor = HttpContext.Current.ApplicationInstance as IContainerAccessor;
                return containerAccessor.Container;
            }
        }
    }
}
在重建solr索引的计划任务中,我需要访问IOC.Container.Resolve来解析索引和索引映射器类。但我得到的对象没有设置为容器的实例。这里的集装箱是空的。我搜索了很多,发现IOC.Container是空的,因为HttpContext.Current是空的。如何在计划任务期间访问windsor容器

任何帮助都将不胜感激。
谢谢

服务定位器反模式通常是一种痛苦的方式。您的计划任务是如何运行的?这些任务的合成根是什么?看起来您可能需要一个不同于MVC项目的组合根。将此castle windsor容器用于我的solr项目。我正在使用Solrnet。为了添加内核和indexmapper类,我安装了一个容器。我们以前没有使用过容器。我的asp.net mvc项目与sitecore cms系统一起使用。我们目前正在使用计划任务,并使用sitecore设置任务。我不知道如何找到这些计划任务的合成根。我还读了您提供的关于服务定位器反模式的文档,但是对于solrnet和多核需求,我只剩下服务定位器模式。是否有其他模式可以使用。服务定位器反模式通常是一种痛苦的方式。您的计划任务是如何运行的?这些任务的合成根是什么?看起来您可能需要一个不同于MVC项目的组合根。将此castle windsor容器用于我的solr项目。我正在使用Solrnet。为了添加内核和indexmapper类,我安装了一个容器。我们以前没有使用过容器。我的asp.net mvc项目与sitecore cms系统一起使用。我们目前正在使用计划任务,并使用sitecore设置任务。我不知道如何找到这些计划任务的合成根。我还读了您提供的关于服务定位器反模式的文档,但是对于solrnet和多核需求,我只剩下服务定位器模式。有没有其他图案我可以用。