2013-10-10 27 views
1

我試圖找到所有的類和NRefactory這個類上面的屬性,但不幸我(但)不能實現這一點。NRefactory屬性與類

解決此問題的最佳方法是什麼?我能夠找到屬性,但我怎麼確定它屬於某個類?

回答

2

下面的代碼的伎倆:

 StreamReader reader = new StreamReader(@"..\..\demo.cs"); 
     var tex = reader.ReadToEnd(); 

     var syntaxTree = new CSharpParser().Parse(tex, tex); 

     var testClass = syntaxTree.Descendants.OfType<TypeDeclaration>().Single(x => x.ClassType == ClassType.Class); 
     var testClassAttributes = testClass.Attributes.SelectMany(x => x.Attributes).ToArray(); 
0

你可以用下面的方法:

IEnumerable<ICSharpCode.NRefactory.CSharp.Attribute> GetAttributes(TypeDeclaration typeDeclaration) 
{ 
    return typeDeclaration.Members 
     .SelectMany(member => member 
      .Attributes 
      .SelectMany(attr => attr.Attributes)); 
}