C# 在项目之间共享castle windsor容器asp.net mvc
我有一个asp.net mvc web项目,我已经在global.asax应用程序启动中初始化了我的windsor容器。我的solrnet设备需要这个容器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) {
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和多核需求,我只剩下服务定位器模式。有没有其他图案我可以用。