c# – 如何在Stateless(.NET状态机库)中记录状态转换

我想有一个登录我工作流状态转换的数据库.

使用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
}

相关文章

在要实现单例模式的类当中添加如下代码:实例化的时候:frmC...
1、如果制作圆角窗体,窗体先继承DOTNETBAR的:public parti...
根据网上资料,自己很粗略的实现了一个winform搜索提示,但是...
近期在做DSOFramer这个控件,打算自己弄一个自定义控件来封装...
今天玩了一把WMI,查询了一下电脑的硬件信息,感觉很多代码都...
最近在研究WinWordControl这个控件,因为上级要求在系统里,...