A state machine implementation that is triggered through a (proxy-)interface. This hides all state machine mechanics for the outside world, it just talks with an ordinary interface. This approach also opens the way to use ordinary classes (with interfaces) as states within the state machine.
The TIM interface proxy supports all possible interface elements like properties, events, generics and ref/out parameters.
There is support for using transactions which enables the machine to roll back to a previous state after an exception. This makes it a good basis for a persistent state machine.
The library is thread-safe and it further supports all the normal state machine stuff like entry/exit etc.
The current version appears to be stable but hasn't thoroughly been tested yet.
The TIM project will appear on GitHub in a couple of weeks.
Install-Package TIM -Version 1.1.0-beta
dotnet add package TIM --version 1.1.0-beta
<PackageReference Include="TIM" Version="1.1.0-beta" />
paket add TIM --version 1.1.0-beta
#r "nuget: TIM, 1.1.0-beta"
// Install TIM as a Cake Addin #addin nuget:?package=TIM&version=1.1.0-beta&prerelease // Install TIM as a Cake Tool #tool nuget:?package=TIM&version=1.1.0-beta&prerelease
Initial beta release.
This package has no dependencies.
This package is not used by any NuGet packages.
This package is not used by any popular GitHub repositories.