Meine Anwendung verwendet NHibernate mit einer Sitzung pro Anforderung Implementierung. Ich habe eine Kernbibliothek, die eine Thread-sichere Singleton für den Zugriff auf die aktuelle Nhibernate-Sitzung bietet.Ninject und Singleton
Dieser Singleton wird von der Webanwendung in den Ereignissen BeginRequest und EndRequest genutzt, um das Öffnen und Schließen der Sitzung bei jeder Anforderung sicherzustellen. Darüber hinaus verwendet meine DataAccess-Ebene den gleichen Singleton für den Datenzugriff, sodass dieselbe Nhibernate-Sitzung genutzt wird.
Ich habe jetzt Ninject in die Gleichung hinzugefügt, so dass ich zur Laufzeit die NHibernate Kontextinformationen, nämlich die Verbindungszeichenfolge ableiten kann. Ich möchte einen Wert in meiner Webkonfiguration ändern, der sagt, welche Datenbank es trifft. Das Problem ist, dass ich, um dies zu tun, mein Singleton (oben erwähnt) in der Lage sein muss, eine seiner Eigenschaften, IConnectionStringProvider, abzuleiten.
Es ist richtig verdrahtet, aber der Singleton wird nie instanziierte Eigenschaften haben, daher bricht alles.
Also zu meiner Frage ... wie kann ich Ninject mit einem Singleton arbeiten, oder wie kann ich meine Implementierung ändern, um mit Ninject zu arbeiten?