类Parser仅具有返回ParseResult的Parse方法,似乎我无法使用ParseResult做任何事情。如何获得sql语句的抽象语法树,或者仅可以从sql解析元数据标记就可以了。
我进行了一些研究,发现可以使用反射使用SqlScript.WriteXml来生成已解析的信息xml文件。这是示例代码,我不知道是否有更好的方法。
var rst = Parser.Parse(File.ReadAllText(@"*.sql"));
var fieldInfo = rst.GetType().GetField("sqlScript", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.GetField);
var script = fieldInfo.GetValue(rst);
var writer = XmlWriter.Create("*.xml");
script.GetType().InvokeMember("WriteXml", BindingFlags.NonPublic| BindingFlags.Instance | BindingFlags.InvokeMethod
, null, script, new object[] { writer });
writer.Close();
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句