Delen via


Meldingen

Het is vaak handig om te reageren op statuswijzigingen. Alle callbacks zijn onderhevig aan Orleans'turn-based garanties; zie ook de sectie over gelijktijdigheidsgaranties.

Bevestigde status bijhouden

Als u op de hoogte wilt worden gesteld van wijzigingen in de bevestigde status, JournaledGrain<TGrainState,TEventBase> kunnen subklassen deze methode overschrijven:

protected override void OnStateChanged()
{
   // read state and/or event log and take appropriate action
}

OnStateChanged wordt aangeroepen wanneer de bevestigde status wordt bijgewerkt, bijvoorbeeld wanneer het versienummer toeneemt. Dit kan gebeuren wanneer

  1. Er is een nieuwere versie van de status geladen vanuit de opslag.
  2. Een gebeurtenis die door dit exemplaar is gegenereerd, is naar de opslag geschreven.
  3. Er is een meldingsbericht ontvangen van een ander exemplaar.

Aangezien alle korrels in eerste instantie versie nul hebben, totdat de eerste belasting van de opslag is voltooid, betekent dit dat OnStateChanged() wordt aangeroepen wanneer de eerste belasting is voltooid met een versie die groter is dan nul.

Voorlopige status bijhouden

Als u op de hoogte wilt worden gesteld van eventuele wijzigingen in de voorlopige status, JournaledGrain kunnen subklassen deze methode overschrijven:

protected override void OnTentativeStateChanged()
{
   // read state and/or events and take appropriate action
}

OnTentativeStateChanged() wordt aangeroepen wanneer de voorlopige status verandert, d.w.z. als de gecombineerde reeks (ConfirmedEvents + UnconfirmedEvents) verandert. Met name een callback die OnTentativeStateChanged() altijd plaatsvindt tijdens RaiseEvent.