我的工作系统基本上是一个消息驱动的状态机.它接收各种类型的消息,根据消息查找某些上下文/状态,然后根据消息和当前状态决定要执行的操作.通常,结果是从系统发出消息.
是否有任何良好的开源框架在.NET中实现状态机?我查看了最新版本的Windows Workflow,看起来这是一个不错的选择; 但是,我对默认持久性机制(我们需要报告状态转换数据),可测试性以及WF团队正在重新设计框架这一事实(我猜)时有一些担忧.
而不是WF,我正在考虑尝试实现一个普通的GoF"State"模式,并使用Spring.NET将所有内容连接起来.有什么东西可以做到这一点,或类似的东西?
根据您的具体要求,您可能会发现状态机编译器足以实现GoF"状态"模式.它可以生成C#以及可以使用Graphviz转换为多种图像格式的点.我在以前的项目中使用它,发现它足以生成一个"简单"的状态机.我希望这有帮助.