我想有一个登录我工作流状态转换的数据库.
使用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 }