c# – XML序列化Roslyn SyntaxTree?
我正在寻找将C#转换为
XML并再次反序列化回C#的选项.有人知道任何现有的解决方案吗?我假设Roslyn SyntaxTree不是Xml可序列化的.我还假设为一个syntaxtree制作一个xml-serializer是一项相当大的工作.但也许不是吗?
我为什么需要这个?我想通过xsl到syntaxtree-xml从xml模型生成代码,然后生成c#(或者可能是vb). 我不想直接从XSL生成C#(可以做但我觉得它不是理想的).我需要XSL,因为我还要从XML模型生成XAML和HTML,我也希望能够生成任何需要的代码等等. 我知道T4模板,但现在我正在寻找其他选项,原因有很多. 解决方法
Roslyn是一个开放的编译器.我假设您可以直接插入自己的代码来遍历AST并以XML格式转储它.鉴于它是开放的,因此你可以实现自己的扩展来读取你的转储XML,并构建一个Roslyn AST(我认为它可以被精心打印).这似乎很多工作.
对于固定解决方案,请参阅C# AST in XML.该解决方案也需要类似的读取XML-to-make-AST. 您可能不希望将XML用于树;这样的文件通常是巨大的.见What would an AST (abstract syntax tree) for an object-oriented programming language look like?. 您可能更好地在解析和构建AST的工具的上下文中操作,直接在这些AST上进行操作,然后对结果进行相同的打印.我们的DMS系统既有解析(前面两个例子所示),也有许多语言的漂亮打印,包括已经内置的C#,以及许多有用的API,用于检查/修改/生成它构建的AST代码. (对于分析AST而言,XSL并不像你想象的那么有用;它不理解“上下文”[例如,周围的范围和声明]给程序赋予它们的意义). (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- [elixir! #0030] 在 elixir 项目中使用 RiakKV (1) -- Riak
- 开启FlashPlayer中的回声抑制功能
- FLEX组件继承关系
- Postgresql主备同步流复制及主备切换、IP漂移
- ORACLE ADF11g:VO获取页面当前行和多行
- [oracle]Ubuntu下ORA-27102及ORA-00845错误处理
- sqlite入门基础(二):sqlite3_get_table,sqlite3_free_tabl
- c# – jQuery Web方法调用的500内部错误 – IIS 5.1(: –
- 用Promise解决多个异步Ajax请求导致的代码嵌套问题(完美解决
- 知道这20个正则表达式,能让你少写1,000行代码