4
私はすべてのクラス変数を抽出する必要があります。しかし、私のコードは、メソッド(locals)で宣言された変数を含むすべての変数を返します。たとえば:すべてのクラス変数を取得するにはどうすればよいですか?
class MyClass
{
private int x;
private int y;
public void MyMethod()
{
int z = 0;
}
}
私だけx
とy
を取得する必要がありますが、私はx
、y
、およびz
を取得します。 これまでの私のコード:
SyntaxTree tree = CSharpSyntaxTree.ParseText(content);
IEnumerable<SyntaxNode> nodes = ((CompilationUnitSyntax) tree.GetRoot()).DescendantNodes();
List<ClassDeclarationSyntax> classDeclarationList = nodes
.OfType<ClassDeclarationSyntax>().ToList();
classDeclarationList.ForEach(cls =>
{
List<MemberDeclarationSyntax> memberDeclarationSyntax = cls.Members.ToList();
memberDeclarationSyntax.ForEach(x =>
{
//contains all variables
List<VariableDeclarationSyntax> variables = x.DescendantNodes()
.OfType<VariableDeclarationSyntax>().ToList();
});
});