私はこれを間違って使用している可能性があると思います.複数のコアのNinjectバリアントにはあまりありませんでしたが、NinjectとSolrNetを使用しようとしています. 完全にルーズなマッピングを利用しながら。したがって、Ninject の名前付きバインディングを使用する必要があることはわかっています。Windsor を使用できません。dll が現在のものとうまく機能しないようです。
容疑者コード:
SolrServers cores = new SolrServers();
cores.Add(new SolrServerElement
{
Id = "index1",
DocumentType = typeof(ISolrOperations<Dictionary<string, object>>).AssemblyQualifiedName,
Url = "http://localhost:8080/solr/index1",
});
cores.Add(new SolrServerElement
{
Id = "index2",
DocumentType = typeof(ISolrOperations<Dictionary<string, object>>).AssemblyQualifiedName,
Url = "http://localhost:8080/solr/index2",
});
var kernal = new StandardKernel(new SolrNetModule(cores));
var operations = kernal.Get<ISolrOperations<Dictionary<string, object>>>("index1");
発生したエラー:
Test 'Test.DifferentTest' failed:
Ninject.ActivationException : Error activating ISolrOperations{Dictionary{string, Object}}
No matching bindings are available, and the type is not self-bindable.
Activation path:
1) Request for ISolrOperations{Dictionary{string, Object}}
DI の概念は理解していますが、MVC ではすべてが隠されているように見えたため、それ以上のことはわかりません。したがって、これがばかげている理由/SolrNetがそれとどのように相互作用するかについての追加の説明をいただければ幸いです。
SolrNet モジュールへのリンクhttps://github.com/mausch/SolrNet/blob/master/Ninject.Integration.SolrNet/SolrNetModule.cs