XML SAX解析器,用于使用reflection编写脚本

我想要使​​用XML创建一个假设的脚本系统。 我们的想法是使用SAX解析器和C#reflection。

我找不到允许使用XML文件指定自定义操作的库/框架。 这时我使用XML来序列化应用程序类,bug可能非常棒,可以指定应用程序使用XML执行哪些操作。

所以,我在考虑:

  • C#的SAX解析器实现?
  • XML脚本约定?

我想要实现的是: – 分配类实例属性的可能性 – 调用类实例例程的可能性

假设类实例是隐式的,以下XML脚本对我来说是金色的:

              

它已经由某人完成了? 可能吗?

虽然不是SAX解析器,但MSBuild和NAnt是基于XML的脚本平台的优秀示例。 两者都支持开发自定义操作,并拥有大量用户,可以随时为您提供帮助。

如果你必须从头开始构建它,我建议构建实现简单执行接口的可序列化类(例如, Run()方法,已知事件等)。 然后,您可以使用.NET XmlSerializer反序列化对象,强制转换为接口并调用其例程。

Microsoft没有.Net的SAX解析器。 但是,它们确实有一个XmlTextReader类,您可以使用它来一次读取xml节点。 除了MSBuild之外,似乎Microsoft首先使用的用于WPF的xaml方言和现在用于.Net 4.0 WWF的xaml方言可能类似于您想要编写的脚本。 我不确定你对这个项目的要求是什么,如果你真的想要全力以赴,你可以使用.Net中的代码生成技术来编译脚本以获得更好的性能。