我有一个XML文件,想要在c#数据结构中表示XML文件中描述的复杂有限状态机。我可以使用哪种数据结构?一个州的定义是here。状态机根据各种异步事件显示同步和异步转换和操作。
答案 0 :(得分:1)
您应该首先看一下State Design Pattern如何帮助您。
你有两件事你需要
如果您的状态实例是预先创建的。
这些状态的内部表示,您可以将XML反序列化为。这将是一系列代表XML结构的类。
由于每个状态似乎都有一个ID,并且您使用此ID转换到目标状态,因此您可以将状态对象(这些来自第1点)存储在字典中,其中键是ID,并且value是状态对象。当您执行转换时,您只需在字典中查找目标状态并从那里获取实例。
如果要按需创建状态实例
字典将包含每个状态的元数据(这可以是XML或从原始XML中提取的优化格式)然后当需要状态转换时,您在字典中查找状态并且从与状态id相关联的元数据动态实例化状态。