1
我得到這個學步車SyntaxWalker訪客不訪問方法
internal class MyWalker : CSharpSyntaxWalker
{
public int MethodCount { get; private set; }
public MyWalker() : base(Microsoft.CodeAnalysis.SyntaxWalkerDepth.Trivia)
{ }
public override void VisitMethodDeclaration(MethodDeclarationSyntax node)
{
MyMethodCount ++;
}
public override void VisitClassDeclaration(ClassDeclarationSyntax node)
{
Class++;
Complexity++;
}
}
我叫沃克與此代碼
var code = @"
public class foo
{
public void MyMethod()
{
}
}
";
SyntaxTree node = CSharpSyntaxTree.ParseText(source);
var root = node.GetRoot();
var walker = new MyWalker();
walker.Visit(root);
但訪問MethodDeclaration永遠不會被調用。
爲了確保我與SyntaxTree分析器相比較,我可以看出roslyn應該將它識別爲方法聲明。
我錯過了什麼?
是什麼在'GetRoot'? –
其現有的唯一一個包裝我改變了代碼。 –