示例#1
0
        /// <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)));
        }
示例#2
0
        /// <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)));
        }
示例#3
0
        /// <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)));
        }