/// <summary> /// Registers a new core in the container. /// This method is meant to be used after the facility initialization /// </summary> /// <param name="core"></param> private void RegisterCore(SolrCore core) { var coreConnectionId = core.Id + typeof(SolrConnection); Kernel.Register(Component.For <ISolrConnection>().ImplementedBy <SolrConnection>() .Named(coreConnectionId) .Parameters(Parameter.ForKey("serverURL").Eq(core.Url))); var ISolrQueryExecuter = typeof(ISolrQueryExecuter <>).MakeGenericType(core.DocumentType); var SolrQueryExecuter = typeof(SolrQueryExecuter <>).MakeGenericType(core.DocumentType); Kernel.Register(Component.For(ISolrQueryExecuter).ImplementedBy(SolrQueryExecuter) .Named(core.Id + SolrQueryExecuter) .ServiceOverrides(ServiceOverride.ForKey("connection").Eq(coreConnectionId))); var ISolrBasicOperations = typeof(ISolrBasicOperations <>).MakeGenericType(core.DocumentType); var ISolrBasicReadOnlyOperations = typeof(ISolrBasicReadOnlyOperations <>).MakeGenericType(core.DocumentType); var SolrBasicServer = typeof(SolrBasicServer <>).MakeGenericType(core.DocumentType); Kernel.Register(Component.For(ISolrBasicOperations, ISolrBasicReadOnlyOperations) .ImplementedBy(SolrBasicServer) .Named(core.Id + SolrBasicServer) .ServiceOverrides(ServiceOverride.ForKey("connection").Eq(coreConnectionId), ServiceOverride.ForKey("queryExecuter").Eq(core.Id + SolrQueryExecuter))); var ISolrOperations = typeof(ISolrOperations <>).MakeGenericType(core.DocumentType); var SolrServer = typeof(SolrServer <>).MakeGenericType(core.DocumentType); Kernel.Register(Component.For(ISolrOperations).ImplementedBy(SolrServer) .Named(core.Id) .ServiceOverrides(ServiceOverride.ForKey("basicServer").Eq(core.Id + SolrBasicServer))); }
/// <summary> /// Registers a new core in the container. /// This method is meant to be used after the facility initialization /// </summary> /// <param name="core"></param> private void RegisterCore(SolrCore core) { var coreConnectionId = core.Id + typeof(SolrConnection); if (core.PostConnection) { Kernel.Register( Component.For <ISolrConnection>().ImplementedBy <PostSolrConnection>() .Named(coreConnectionId) .DependsOn(Dependency.OnValue("serverURL", core.Url)) ); } else { Kernel.Register(Component.For <ISolrConnection>().ImplementedBy <SolrConnection>() .Named(coreConnectionId) .DependsOn(Parameter.ForKey("serverURL").Eq(core.Url))); } var ISolrQueryExecuter = typeof(ISolrQueryExecuter <>).MakeGenericType(core.DocumentType); var SolrQueryExecuter = typeof(SolrQueryExecuter <>).MakeGenericType(core.DocumentType); Kernel.Register(Component.For(ISolrQueryExecuter).ImplementedBy(SolrQueryExecuter) .Named(core.Id + SolrQueryExecuter) .DependsOn(Dependency.OnComponent("connection", coreConnectionId))); var ISolrBasicOperations = typeof(ISolrBasicOperations <>).MakeGenericType(core.DocumentType); var ISolrBasicReadOnlyOperations = typeof(ISolrBasicReadOnlyOperations <>).MakeGenericType(core.DocumentType); var SolrBasicServer = typeof(SolrBasicServer <>).MakeGenericType(core.DocumentType); Kernel.Register(Component.For(ISolrBasicOperations, ISolrBasicReadOnlyOperations) .ImplementedBy(SolrBasicServer) .Named(core.Id + SolrBasicServer) .DependsOn(Dependency.OnComponent("connection", coreConnectionId), Dependency.OnComponent("queryExecuter", core.Id + SolrQueryExecuter))); var ISolrOperations = typeof(ISolrOperations <>).MakeGenericType(core.DocumentType); var SolrServer = typeof(SolrServer <>).MakeGenericType(core.DocumentType); Kernel.Register(Component.For(ISolrOperations).ImplementedBy(SolrServer) .Named(core.Id) .DependsOn(Dependency.OnComponent("basicServer", core.Id + SolrBasicServer))); }
/// <summary> /// Registers a new core in the container. /// This method is meant to be used after the facility initialization /// </summary> /// <param name="core"></param> private void RegisterCore(SolrCore core) { var coreConnectionId = core.Id + typeof (SolrConnection); Kernel.Register(Component.For<ISolrConnection>().ImplementedBy<SolrConnection>() .Named(coreConnectionId) .Parameters(Parameter.ForKey("serverURL").Eq(core.Url))); var ISolrQueryExecuter = typeof (ISolrQueryExecuter<>).MakeGenericType(core.DocumentType); var SolrQueryExecuter = typeof (SolrQueryExecuter<>).MakeGenericType(core.DocumentType); Kernel.Register(Component.For(ISolrQueryExecuter).ImplementedBy(SolrQueryExecuter) .Named(core.Id + SolrQueryExecuter) .ServiceOverrides(ServiceOverride.ForKey("connection").Eq(coreConnectionId))); var ISolrBasicOperations = typeof(ISolrBasicOperations<>).MakeGenericType(core.DocumentType); var ISolrBasicReadOnlyOperations = typeof(ISolrBasicReadOnlyOperations<>).MakeGenericType(core.DocumentType); var SolrBasicServer = typeof(SolrBasicServer<>).MakeGenericType(core.DocumentType); Kernel.Register(Component.For(ISolrBasicOperations, ISolrBasicReadOnlyOperations) .ImplementedBy(SolrBasicServer) .Named(core.Id + SolrBasicServer) .ServiceOverrides(ServiceOverride.ForKey("connection").Eq(coreConnectionId), ServiceOverride.ForKey("queryExecuter").Eq(core.Id + SolrQueryExecuter))); var ISolrOperations = typeof (ISolrOperations<>).MakeGenericType(core.DocumentType); var SolrServer = typeof(SolrServer<>).MakeGenericType(core.DocumentType); Kernel.Register(Component.For(ISolrOperations).ImplementedBy(SolrServer) .Named(core.Id) .ServiceOverrides(ServiceOverride.ForKey("basicServer").Eq(core.Id + SolrBasicServer))); }