Fork me on GitHub


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:


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.