Sahil Chawla
Sahil Chawla

Reputation: 25

SolrNet - Using Dependency injection doesnt call the Startup.Init<T> method

Using Solrnet in my .NET core project through dependency injection as -

services.AddSolrNet<T>("http://localhost:8983/solr");
And injecting it through ISolrOperations<T>

As opposed to how we do in .net framework Startup.Init<T>("http://localhost:8983/solr"); This calls the Startup.Init<T> method and allows me to register my custom response parser at runtime which is not the case when I use depedency injection.

Any idea how to solve this ? I want to use DI but at run time, i wish to deregister default response parser and register my own. These lines work perfectly fine in .net framework -

SolrNet.Startup.Container.Remove<ISolrAbstractResponseParser<SolrResponse>>();
SolrNet.Startup.Container.Register<ISolrAbstractResponseParser<SolrResponse>>(c => new AggregateResponseParser<SolrResponse>(new ISolrAbstractResponseParser<SolrResponse>[]
                {
                        new ResultsNestedResponseParser<SolrResponse>(new SolrNestedDocumentParser<SolrResponse>(c.GetInstance<ISolrDocumentPropertyVisitor>()))
                }));

Upvotes: 2

Views: 377

Answers (0)

Related Questions