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

c# – NRefactory 5从一个简单的例子开始

发布时间:2020-12-15 17:26:47 所属栏目:百科 来源:网络整理
导读:我想开始使用NRefactory 5来解析CSharp文件,进行重构. 但文档很少.所以我尝试并失败了: 我从以下代码开始,看看我是否可以从cs文件中获取AstNode树. 我希望解析为我生成一些节点,但不是. 有人可以指导我吗? TextReader reader = File.OpenText(fname);Compi
我想开始使用NRefactory 5来解析CSharp文件,进行重构.
但文档很少.所以我尝试并失败了:
我从以下代码开始,看看我是否可以从cs文件中获取AstNode树.

我希望解析为我生成一些节点,但不是.
有人可以指导我吗?

TextReader reader = File.OpenText(fname);
CompilationUnit compilationUnit;

CSharpParser parser = new CSharpParser();
compilationUnit = parser.Parse(reader,fname);
AstNode node = compilationUnit.GetNextNode();
System.Collections.Generic.IEnumerable<AstNode> desc = 
    compilationUnit.Descendants;
foreach (AstNode jo in desc)
{
    System.Console.WriteLine("At least something here");
}

解决方法

看一下NRefactory源代码中的ICSharpCode.NRefactory.Demo项目 – 它可以解析一些代码并在TreeView中显示语法树.

您发布的代码确实应该生成一些节点–compilationUnit.Children将包含直接子节点(通常使用和命名空间声明).

而且还有CodeProject article.

(编辑:李大同)

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

    推荐文章
      热点阅读