0
你好,我有一個非常大的問題。我需要使用單一類型創建連接到一個核心並進行任何操作。 現在它看起來像:SolrNet一個核心和多種連接類型
public class SolrMachine<T> : ISolrMachine<T> where T : ISolrRecord
{
private ISolrOperations<T> actuallyInstance { get; set; }
public SolrMachine(string coreName)
{
string url = String.Format("http://xxxx/solr/{0}", coreName);
ISolrConnection solrConnection = new SolrConnection(url) { HttpWebRequestFactory = new SolrAuthWebRequestFactory()};
Startup.Init<T>(solrConnection);
var myInstance = ServiceLocator.Current.GetInstance<ISolrOperations<T>>();
this.actuallyInstance = myInstance;
}
}
ISolrMachine<T>
是我的方法對Solr的核心操作界面。 ISolrRecord
是與我的核心中的屬性的接口。
現在,當我與另外兩個內核進行連接時,所有工作都完美無缺。
SolrMachine<SolrTypeOne> firstCoreConnection = new SolrMachine<SolrTypeOne>(firstCoreName);
SolrMachine<SolrTypeTwo> secondCoreConnection = new SolrMachine<SolrTypeTwo>(secondCoreName);
// operation on firstCoreConnection and secondCoreConnection works
但是當我試圖用一種類型和一個coreName我對Startup.Init<T>(solrConnection)
異常連接。我知道Startup
容器會阻止與Type
和coreName
相同的連接,但我總是爲此SolrMachine創建一個新實例。我期望這樣:
class SomeClass
{
public MyMethod()
{
SolrMachine<SolrTypeOne> myConn = new SolrMachine<SolrTypeOne>(firstCoreName);
// operation
}
}
class SecondSomeClass
{
public MyMethod()
{
SolrMachine<SolrTypeOne> myConn2 = new SolrMachine<SolrTypeOne>(firstCoreName);
// here it's not work
}
}
如何避免這種情況?
https://github.com/mausch/SolrNet/blob/master/Documentation/Multi-core-instance.md –
沒有回答我的情況? :) – Sidron
「內置容器目前僅限於訪問具有不同映射類型的多個內核/實例。」 –