是否有一个简单的.NET代码生成器用于事件驱动的有限状态机?

时间:2010-09-13 17:55:10

标签: .net state-machine event-driven scxml

是否有一个简单的.NET代码生成器用于事件驱动的有限状态机?

我厌倦了为用户界面对象手动执行此操作。我只需要枚举定义,switch语句和每个函数调用。我不需要“图书馆”。

请参阅http://en.wikipedia.org/wiki/Event_driven_finite_state_machine上的事件驱动的有限状态机

http://aabs.wordpress.com/2008/06/26/state-machines-in-c-30-using-t4-templates/使用T4模板的C#3.0中的状态机似乎是我想要的,但示例代码的链接已被破坏。

2 个答案:

答案 0 :(得分:0)

如果我在你的位置,我会下载Enterprise Architect的试用版:

http://www.sparxsystems.com.au/products/ea/index.html

然后我会建模我的场景,然后使用代码生成器。根据您需要生成的数量,您可能需要查看产品中的一些更高级的选项,例如可能允许您根据列表生成多个时间更改参数的脚本。

P.S。我不适合Sparx系统:-),我确实喜欢他们的工具。

答案 1 :(得分:-1)

就像你说的那样,你只需要:

枚举定义,包含变量,一个命名约定,在方法名称中包含相应的枚举状态,使用反射调用并更新包含枚举的变量

以上不是生成的代码,但我不明白为什么不使用它。你应该能够快速烘烤一个。 替代使用反射的替代方案将保留在每个状态的列表中,其中Func<>将被调用,使用T4模板生成应该很容易


PS。我倾向于提供更多帮助,但问题的方式是它要求它^ - ^。也就是说,我对上述内容有点认真,上面的任何一个都没有那么多时间(特别是在OP可能不知道的任何部分有stackoverflow帮助)/并且OP写道,就像他已经完成了那些手很多次。