Fork me on GitHub

Extensions

Extensions are used to change or access internals of the state machine. For example logging can easily be implemented with an extension.

Changing the Behaviour of a State Machine

Extensions can change the behaviour of the state machine in these ways:

Interface

A state machine extension has to implement the IExtension<TState, TEvent> interface.

You can use the ExtensionBase class in the namespace Appccelerate.StateMachine.Extensions to derive your extensions. The ExtensionBase class implements all interface members with virtual methods.