如何在 Stateless 中记录状态转换(.NET 状态机库)
How to log state transitions in Stateless (.NET state machine library)
我想在数据库中记录我的工作流程的状态转换。
使用 Stateless 触发日志记录的最佳位置在哪里?是否应该为每个州配置设置:
phoneCall.Configure(State.Connected)
.OnEntry(() => StartCallTimer())
.OnEntry(() => Log());
或者有什么方法可以为整个工作流集中定义一次?
欢迎就此提出任何其他意见。
您可以使用将在每次转换时触发的 OnTransitioned
触发器作为中央日志记录工具。
_stateMachine.OnTransitioned(OnTransitionedAction);
void OnTransitionedAction(StateMachine<StateEnum, TriggerEnum>.Transition transition) {
TriggerEnum trigger = transition.Trigger;
StateEnum source = transition.Source;
StateEnum dest = transition.Destination;
// log trigger, source, destination
}
我想在数据库中记录我的工作流程的状态转换。
使用 Stateless 触发日志记录的最佳位置在哪里?是否应该为每个州配置设置:
phoneCall.Configure(State.Connected)
.OnEntry(() => StartCallTimer())
.OnEntry(() => Log());
或者有什么方法可以为整个工作流集中定义一次?
欢迎就此提出任何其他意见。
您可以使用将在每次转换时触发的 OnTransitioned
触发器作为中央日志记录工具。
_stateMachine.OnTransitioned(OnTransitionedAction);
void OnTransitionedAction(StateMachine<StateEnum, TriggerEnum>.Transition transition) {
TriggerEnum trigger = transition.Trigger;
StateEnum source = transition.Source;
StateEnum dest = transition.Destination;
// log trigger, source, destination
}