/// <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); For <ISolrConnection>().Add <SolrConnection>() .Named(coreConnectionId) .Ctor <string>("serverURL").Is(core.Url) .Setter(c => c.Cache).IsTheDefault(); var ISolrQueryExecuter = typeof(ISolrQueryExecuter <>).MakeGenericType(core.DocumentType); var SolrQueryExecuter = typeof(SolrQueryExecuter <>).MakeGenericType(core.DocumentType); For(ISolrQueryExecuter).Add(SolrQueryExecuter).Named(core.Id + SolrQueryExecuter) .Ctor <ISolrConnection>("connection").IsNamedInstance(coreConnectionId); var ISolrBasicOperations = typeof(ISolrBasicOperations <>).MakeGenericType(core.DocumentType); var ISolrBasicReadOnlyOperations = typeof(ISolrBasicReadOnlyOperations <>).MakeGenericType(core.DocumentType); var SolrBasicServer = typeof(SolrBasicServer <>).MakeGenericType(core.DocumentType); For(ISolrBasicOperations).Add(SolrBasicServer).Named(core.Id + SolrBasicServer) .Ctor <ISolrConnection>("connection").IsNamedInstance(coreConnectionId) .Dependencies.Add("queryExecuter", new ReferencedInstance(core.Id + SolrQueryExecuter)); For(ISolrBasicReadOnlyOperations).Add(SolrBasicServer).Named(core.Id + SolrBasicServer) .Ctor <ISolrConnection>("connection").IsNamedInstance(coreConnectionId) .Dependencies.Add("queryExecuter", new ReferencedInstance(core.Id + SolrQueryExecuter)); var ISolrOperations = typeof(ISolrOperations <>).MakeGenericType(core.DocumentType); var SolrServer = typeof(SolrServer <>).MakeGenericType(core.DocumentType); For(ISolrOperations).Add(SolrServer).Named(core.Id) .Dependencies.Add("basicServer", new ReferencedInstance(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); For <ISolrConnection>().Add <SolrConnection>().Named(coreConnectionId).Ctor <string>("serverURL").Is(core.Url); var ISolrQueryExecuter = typeof(ISolrQueryExecuter <>).MakeGenericType(core.DocumentType); var SolrQueryExecuter = typeof(SolrQueryExecuter <>).MakeGenericType(core.DocumentType); For(ISolrQueryExecuter).Add(SolrQueryExecuter).Named(core.Id + SolrQueryExecuter) .CtorDependency <ISolrConnection>("connection").IsNamedInstance(coreConnectionId); var ISolrBasicOperations = typeof(ISolrBasicOperations <>).MakeGenericType(core.DocumentType); var ISolrBasicReadOnlyOperations = typeof(ISolrBasicReadOnlyOperations <>).MakeGenericType(core.DocumentType); var SolrBasicServer = typeof(SolrBasicServer <>).MakeGenericType(core.DocumentType); For(ISolrBasicOperations).Add(SolrBasicServer).Named(core.Id + SolrBasicServer) .CtorDependency <ISolrConnection>("connection").IsNamedInstance(coreConnectionId) .Child("queryExecuter").IsNamedInstance(core.Id + SolrQueryExecuter); For(ISolrBasicReadOnlyOperations).Add(SolrBasicServer).Named(core.Id + SolrBasicServer) .CtorDependency <ISolrConnection>("connection").IsNamedInstance(coreConnectionId) .Child("queryExecuter").IsNamedInstance(core.Id + SolrQueryExecuter); var ISolrOperations = typeof(ISolrOperations <>).MakeGenericType(core.DocumentType); var SolrServer = typeof(SolrServer <>).MakeGenericType(core.DocumentType); For(ISolrOperations).Add(SolrServer).Named(core.Id) .Child("basicServer").IsNamedInstance(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); For<ISolrConnection>().Add<SolrConnection>().Named(coreConnectionId).Ctor<string>("serverURL").Is(core.Url); var ISolrQueryExecuter = typeof(ISolrQueryExecuter<>).MakeGenericType(core.DocumentType); var SolrQueryExecuter = typeof(SolrQueryExecuter<>).MakeGenericType(core.DocumentType); For(ISolrQueryExecuter).Add(SolrQueryExecuter).Named(core.Id + SolrQueryExecuter) .CtorDependency<ISolrConnection>("connection").IsNamedInstance(coreConnectionId); var ISolrBasicOperations = typeof(ISolrBasicOperations<>).MakeGenericType(core.DocumentType); var ISolrBasicReadOnlyOperations = typeof(ISolrBasicReadOnlyOperations<>).MakeGenericType(core.DocumentType); var SolrBasicServer = typeof(SolrBasicServer<>).MakeGenericType(core.DocumentType); For(ISolrBasicOperations).Add(SolrBasicServer).Named(core.Id + SolrBasicServer) .CtorDependency<ISolrConnection>("connection").IsNamedInstance(coreConnectionId) .Child("queryExecuter").IsNamedInstance(core.Id + SolrQueryExecuter); For(ISolrBasicReadOnlyOperations).Add(SolrBasicServer).Named(core.Id + SolrBasicServer) .CtorDependency<ISolrConnection>("connection").IsNamedInstance(coreConnectionId) .Child("queryExecuter").IsNamedInstance(core.Id + SolrQueryExecuter); var ISolrOperations = typeof(ISolrOperations<>).MakeGenericType(core.DocumentType); var SolrServer = typeof(SolrServer<>).MakeGenericType(core.DocumentType); For(ISolrOperations).Add(SolrServer).Named(core.Id) .Child("basicServer").IsNamedInstance(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); For<ISolrConnection>().Add<SolrConnection>() .Named(coreConnectionId) .Ctor<string>("serverURL").Is(core.Url) .Setter<ISolrCache>().IsTheDefault(); var ISolrQueryExecuter = typeof(ISolrQueryExecuter<>).MakeGenericType(core.DocumentType); var SolrQueryExecuter = typeof(SolrQueryExecuter<>).MakeGenericType(core.DocumentType); For(ISolrQueryExecuter).Add(SolrQueryExecuter).Named(core.Id + SolrQueryExecuter) .Ctor<ISolrConnection>("connection").IsNamedInstance(coreConnectionId); var ISolrBasicOperations = typeof(ISolrBasicOperations<>).MakeGenericType(core.DocumentType); var ISolrBasicReadOnlyOperations = typeof(ISolrBasicReadOnlyOperations<>).MakeGenericType(core.DocumentType); var SolrBasicServer = typeof(SolrBasicServer<>).MakeGenericType(core.DocumentType); For(ISolrBasicOperations).Add(SolrBasicServer).Named(core.Id + SolrBasicServer) .Ctor<ISolrConnection>("connection").IsNamedInstance(coreConnectionId); // Don't think this is necessary because of line 102 which will inject it // In my tests, searches worked without this configuration: //.Child("queryExecuter").IsNamedInstance(core.Id + SolrQueryExecuter); For(ISolrBasicReadOnlyOperations).Add(SolrBasicServer).Named(core.Id + SolrBasicServer) .Ctor<ISolrConnection>("connection").IsNamedInstance(coreConnectionId); //.Child("queryExecuter").IsNamedInstance(core.Id + SolrQueryExecuter); var ISolrOperations = typeof(ISolrOperations<>).MakeGenericType(core.DocumentType); var SolrServer = typeof(SolrServer<>).MakeGenericType(core.DocumentType); For(ISolrOperations).Add(SolrServer).Named(core.Id); //.Child("basicServer").IsNamedInstance(core.Id + SolrBasicServer); }