3

我需要有关我们项目之一的要求的建议。我们想要实现的是我们想要控制来自文本或 XML 文件的方法调用流。

例如:

string response = new Assembly1.Class1().DoStuff();
if (response == "OK")
{
  new Assembly1.Class2().DoStuff();
}
else if (response == "NOTOK")
{
  new Assembly2.Class1().DoStuff();
}

我如何以某种格式表示上述代码,非技术用户可以更改这些格式以修改函数调用的顺序。

4

3 回答 3

2

从根本上说,你必须决定你想要完成什么。

C# 代码包含一定程度的复杂性,但所有这些复杂性都存在,因为 C# 代码非常灵活。

您必须决定要为非技术用户提供多少灵活性。如果您想为它们提供与 C# 相同的灵活性,那么您不妨让它们在 C# 中编程。

否则,第一步将是发明一种特定领域的语言来描述他们将要执行的配置。但是,在您这样做之前,您可能需要研究是否有任何现有的特定领域语言已经完成了您所描述的工作。

定义了领域特定语言的下一步是解析和解释该语言。这是相对复杂的,通常是大学里一个为期一个学期的名为 Compilers 的课程的主题。如果您还没有上过编译器课程,那么您可以阅读一些书籍。通过使用 XML 之类的标记语言和标准 XML 解析库,您可以跳过很多步骤。

于 2010-12-09T05:49:52.847 回答
0

我认为您可以为此目的使用反射或从 xml 即时生成代码。这里有很多样本。

于 2010-12-09T05:44:38.387 回答
0

工厂设计模式可能对你有很好的帮助。使用工厂模式,您可以在运行时分配对象并让这些对象决定流程的流程......

您应该使用 WorkFlow() (在接口中引用)方法构建不同的类。该方法应该能够根据需要调用其他方法。

在流程开始时,您只需读取 XML 文件并为适当的类创建一个对象并调用该类的工作流方法,该方法将依次执行预定的序列。

于 2010-12-09T05:48:49.540 回答