【问题标题】:Parsing source file and trying to get its methods doesn't work. Why is it not working?解析源文件并尝试获取其方法不起作用。为什么它不起作用?
【发布时间】:2020-11-11 00:35:21
【问题描述】:
private static void Main(string[] args)
    {

        var syntaxTree = CSharpSyntaxTree.ParseText(@"C:\Users\Umut\source\repos\frmMain\Program.cs");
        var tree = syntaxTree.GetRoot();
        var methods = tree.DescendantNodes().OfType<MethodDeclarationSyntax>().ToList();

        foreach (var method in methods)
        {
            Console.WriteLine(method.Identifier);
        }
    }

我有这段代码,我正在尝试从源代码中读取方法。当我用这个运行它时:

foreach (var method in methods)
        {
            Console.WriteLine(method.Identifier);
        }

它不工作。控制台什么也不显示(嗯,除了按任意键文本)。所以它会编译但不会打印出任何东西。谁能解释一下为什么?

编辑:我只是愚蠢。我在文件上使用 parsetext,我需要 ParseFile 并且必须像这样使用它:

    var path = @"C:\Users\Umut\source\repos\frmMain\frmMain1.cs";
        using (var stream = File.OpenRead(path))
        {
            var syntaxTree = CSharpSyntaxTree.ParseText(SourceText.From(stream), path: path);

【问题讨论】:

    标签: c# roslyn roslyn-code-analysis


    【解决方案1】:

    我只是愚蠢。我在文件上使用 parsetext,我需要 ParseFile 并且必须像这样使用它:

    var path = @"C:\Users\Umut\source\repos\frmMain\frmMain1.cs";
        using (var stream = File.OpenRead(path))
        {
            var syntaxTree = CSharpSyntaxTree.ParseText(SourceText.From(stream), path: path);
    

    【讨论】:

      猜你喜欢
      • 2018-06-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多