我想要使用XML创建一个假设的脚本系统。我们的想法是使用SAX解析器和C#反射。
我找不到允许使用XML文件指定自定义操作的库/框架。这时我使用XML来序列化应用程序类,bug可能很棒,可以指定应用程序使用XML执行哪些操作。
所以,我在考虑:
我想要达到的目标是: - 分配类实例属性的可能性 - 调用类实例例程的可能性
假设类实例是隐式的,以下XML脚本对我来说是金色的:
<Script>
<Property Name='SomeProperty'>
<Value>
< ... >
</Value>
</Property>
<RoutineCall>
<Parameters>
<Parameter Name='ArgName'>
< ... >
</Parameter>
</Parameters>
</RoutineCall>
</Script>
有人已经完成了吗?有可能吗?
答案 0 :(得分:1)
虽然不是SAX解析器,但MSBuild和NAnt是基于XML的脚本平台的绝佳示例。两者都支持开发自定义操作,并拥有大量用户,可以随时为您提供帮助。
如果必须从头开始构建,我建议构建实现简单执行接口的可序列化类(例如,Run()
方法,已知事件等)。然后,您可以使用.NET XmlSerializer
反序列化对象,强制转换为接口,并调用它们的例程。
答案 1 :(得分:1)
Microsoft没有.Net的SAX解析器。但是,它们确实有一个XmlTextReader类,您可以使用它来一次读取xml节点。除了MSBuild之外,似乎Microsoft首先用于WPF和现在用于.Net 4.0 WWF的xaml方言可能类似于您想要编写的脚本。我不确定你对这个项目的要求是什么,如果你真的想全力以赴,你可以使用.Net中的代码生成技术来编译脚本,以获得更好的性能。