FastFsm.Sharp.DependencyInjection
0.9.1
dotnet add package FastFsm.Sharp.DependencyInjection --version 0.9.1
NuGet\Install-Package FastFsm.Sharp.DependencyInjection -Version 0.9.1
<PackageReference Include="FastFsm.Sharp.DependencyInjection" Version="0.9.1" />
<PackageVersion Include="FastFsm.Sharp.DependencyInjection" Version="0.9.1" />
<PackageReference Include="FastFsm.Sharp.DependencyInjection" />
paket add FastFsm.Sharp.DependencyInjection --version 0.9.1
#r "nuget: FastFsm.Sharp.DependencyInjection, 0.9.1"
#:package FastFsm.Sharp.DependencyInjection@0.9.1
#addin nuget:?package=FastFsm.Sharp.DependencyInjection&version=0.9.1
#tool nuget:?package=FastFsm.Sharp.DependencyInjection&version=0.9.1
Dependency injection
Install the DI package:
dotnet add package FastFsm.Sharp.DependencyInjection
The package defines FSM_DI_ENABLED and FSM_LOGGING_ENABLED and compiles FsmServiceCollectionExtensions into the consuming project.
Register a state machine
AddStateMachine requires four type parameters: interface, implementation, state enum, and trigger enum.
using FastFsm.DependencyInjection;
using Microsoft.Extensions.DependencyInjection;
services.AddStateMachine<IOrderWorkflow, OrderWorkflow, OrderState, OrderTrigger>(
ServiceLifetime.Singleton);
The implementation type is the generated partial state-machine class.
Initial state
By default, the registration uses the first enum value. Configure another initial state with:
services.ConfigureStateMachineInitialState<OrderState>(
_ => OrderState.Draft);
Register extensions
services.AddStateMachineExtension<AuditExtension>(ServiceLifetime.Singleton);
Extensions registered in DI are supplied to machines generated with extension support. In the current 0.9 codebase, set GenerateExtensibleVersion = true explicitly on those machines; see extensions.md.
Factory
Registration also exposes IStateMachineFactory<TInterface, TState, TTrigger> for explicit creation with a selected initial state.
Related types
Defined in src/Fsm/Fsm.Core/DependencyInjection/:
FsmServiceCollectionExtensionsStateMachineFactory<TInterface, TImplementation, TState, TTrigger>IInitialStateProvider<TState>
Tests
See Tests.DependencyInjection (src/Fsm/Fsm.Tests/Tests.DependencyInjection/) for registration and factory coverage.
Learn more about Target Frameworks and .NET Standard.
-
net10.0
- FastFsm.Sharp (>= 0.9.1)
- Microsoft.Extensions.DependencyInjection (>= 10.0.11)
- Microsoft.Extensions.Logging.Abstractions (>= 10.0.11)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on FastFsm.Sharp.DependencyInjection:
| Package | Downloads |
|---|---|
|
FastFsm.Net.DependencyInjection
Legacy package ID. Depends on FastFsm.Sharp.DependencyInjection. New projects should reference FastFsm.Sharp.DependencyInjection directly. |
GitHub repositories
This package is not used by any popular GitHub repositories.
.NET 10 DI package for FastFsm.Sharp. Depends on FastFsm.Sharp. Extension generation remains opt-in. See CHANGELOG.md.