加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – XML序列化Roslyn SyntaxTree?

发布时间:2020-12-15 05:37:54 所属栏目:百科 来源:网络整理
导读:我正在寻找将C#转换为 XML并再次反序列化回C#的选项.有人知道任何现有的解决方案吗?我假设Roslyn SyntaxTree不是Xml可序列化的.我还假设为一个syntaxtree制作一个xml-serializer是一项相当大的工作.但也许不是吗? 我为什么需要这个?我想通过xsl到syntaxtr
我正在寻找将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并不像你想象的那么有用;它不理解“上下文”[例如,周围的范围和声明]给程序赋予它们的意义).

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读