2016-06-30 9 views

Antwort

6

Ein Consumer ist ein registrierter Typ mit einem spezialisierten Handler, der den Lebenszyklus Ihres Consumer-Objekts behandelt.

Ein Handler ist eigentlich nur ein generischer Event-Handler.

Sie würden einen Handler verwenden, wenn Sie nur einen kleinen Action<> Block benötigen, um jede Aktion Ihrer Nachricht zu lösen. Sie würden einen Consumer verwenden, wenn Sie einen Typ mit einem Lebenszyklus registrieren möchten, um alle Aktionen Ihrer Nachricht zu lösen. Im Allgemeinen möchten Sie einen Consumer, weil Ihr Container Abhängigkeiten für den Typ auflösen soll, anstatt sie nur im Bereich Ihres Handlers zu haben. Aber Handler funktionieren hervorragend für kleine Dinge oder Anfrage-Antwort-Szenarien.

+0

Angesichts Ihrer Beschreibung, dann nehme ich es wird eine Consumer-Instanz pro Nachricht sein? Wenn ich einen Fehlerbehandler für dieselbe Klasse anlege, würde die letzte Instanz bei der Behandlung des Fehlers verwendet werden, oder wäre es eine völlig neue Instanz? –

+1

Hängt von der Registrierung ab. Wenn Sie sich bei einem IoC-Container-Helper registrieren, kann der Container den Lebenszyklus beibehalten. Beachten Sie außerdem, dass der Status für mehrere Nachrichten problematisch ist, da es im Allgemeinen mehrere Instanzen gibt, wenn es sich um einen Singleton handelt - mindestens einen pro Thread. – Travis

Verwandte Themen