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

标签 c# stateless-state-machine

我希望在数据库中记录我的工作流程的状态转换。

哪里是触发日志记录的最佳位置 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
}

关于c# - 如何在无状态(.NET 状态机库)中记录状态转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38178841/

相关文章:

c# asp.net mvc5,在c# dll中嵌入js

c# - 当我的第一页内容较少时,XtreReport 显示第二个空页? Winforms开发工具

c# - asp.net mvc批处理(外部线程)挂起,也许超时?

c# - 用于找峰的数学库

c# - 我可以将动态创建的 c# 表转换为 html 字符串吗?

c# - 无状态自动推进状态机

c# - 如何利用无状态框架

c# - 无状态框架与独立的 Forks 一起工作?