Ich muss alle Klassenvariablen extrahieren. Aber mein Code gibt alle Variablen zurück, einschließlich Variablen, die in Methoden (Locals) deklariert sind. Zum Beispiel:Wie kann ich alle (und nur) Klassenvariablen abrufen?
class MyClass
{
private int x;
private int y;
public void MyMethod()
{
int z = 0;
}
}
brauche ich nur x
und y
zu bekommen, aber ich x
, y
und z
. Mein Code so weit:
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();
});
});