Nhibernate, WinForms, Castle Windsor: Sitzungsverwaltung

ch weiß, dass die Frage der Sitzungsverwaltung in der Vergangenheit aufgeworfen wurde, aber ich konnte nichts finden, was mir hilft, mein Problem zu überwinde

Ich habe eine Reihe von Repository-Klassen (z. B. CustomerRepository, ProductRepository usw.), die ich über Castle Windsor auflöse (Hinweis: Ich versuche, das Muster mit drei Aufrufen wie folgt anzuwenden:Hie). Ich nehme an, ich würde am besten eine Sitzung pro Moderator haben (in meinem Fall entspricht dies einer Sitzung pro Formular). Die Repository-Klassen müssen jedoch auf die Sitzung für das derzeit aktive Formular zugreifen. Ich bin nicht sicher, wie ich dies einbeziehe mit der Tatsache, dass diese Repositories durch Windsor aufgelöst werden, da Moderatoren keine Singletons sind ..

Beispielsweise

public class SomePresenter
{
  private ISomeView view;
  private ISession session;
  private ICustomerRepository customerRepository;
  private IOrderRepository orderRepository;

  public SomePresenter(ISomeView view, ISessionFactory sessionFactory, ICustomerRepository customerRepository, IOrderRepository orderRepository)
  {
    this.view = view;
    this.session = sessionFactory.OpenSession();
    this.customerRepository = customerRepository;
    this.orderRepository = orderRepository;
  }
}

Die Repositorys benötigen Zugriff auf die Sitzung ... Wie gehe ich mit Windsor vor? Muss ich die Sitzung in den Repositorys manuell über eine Eigenschaft festlegen, oder gibt es einen cleveren Windsor-Trick, mit dem ich nicht vertraut bin?

Antworten auf die Frage(4)

Ihre Antwort auf die Frage