Ich bin neu in IoC und NHibernate und habe große Schwierigkeiten, versucht zu haben, Best Practices für Dependency-Injection kennenzulernen. Ich habe die letzten Tage damit verbracht, mich umzusehen und die Dokumentation zu lesen, aber leider ist die Dokumentation, die ich gefunden habe, entweder veraltet oder unvollständig.Wie man NHibernate-Sitzungen pro Anfrage in Structuremap.MVC5 verwaltet
Zum Beispiel sagt mir das, was ich tun soll, aber ich habe keine Ahnung, wie es geht. XSockets.Net - how to manage NHibernate Session Context
Ich habe gelernt, dass nach den official documentation, ich brauche verschachtelte Container zu verwenden, in StructureMap, um sicherzustellen, dass die Sitzungen erstellt werden und entsprechend für jede Anforderung angeordnet ist. Leider werden die Beispiele alle in Komponententests festgelegt, die ihren eigenen Container erstellen. Ich habe keine Ahnung, wie man das auf MVC anwendet.
Wenn ich ein Repository wie diese
public class Repository : IRepository {
public Repository(ISession session) {
...
}
...
}
Wie mache ich diese Arbeit:
public NHibernateRegistry()
{
ISessionFactory factory = config.BuildSessionFactory();
For<IRepository>.Use<Repository>()
For<ISession>.????????
}
Oder habe ich alles nach hinten irgendwie bekam?
Hier ist ein Blog-Beitrag beschreibt es für andere Injektion Framework, aber es sollte nützlich sein http://slynetblog.blogspot.com/2012/03/using-aspnet-mvc-4-webapi-with.html – Sly
Hallo Sly , Danke für den Link. Die Zeile 'builder.Register (x => x.Resolve(). OpenSession()). InstancePerHttpRequest();' ist das Ding, von dem ich weiß, dass ich es ausführen möchte, aber nicht herausfinden kann, wie es in structuremap übersetzt werden soll . –
mike1952