我想在我的工作流程的状态转换数据库中登录。
使用Stateless触发日志记录的最佳位置在哪里?是否应为每个州配置进行设置:
phoneCall.Configure(State.Connected)
.OnEntry(() => StartCallTimer())
.OnEntry(() => Log());
或者有一些方法可以为整个工作流程集中定义一次吗?
欢迎这方面的任何其他意见。
答案 0 :(得分:13)
您可以使用将在每次转换时触发的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
}