我试图用NRefactory找到所有的类和这个类上面的属性,但不幸的是我(还)无法做到这一点。
解决这个问题的最佳方法是什么?我能够找到属性,但是我如何确定它属于某个类呢?
发布于 2013-10-10 22:24:22
以下代码做到了这一点:
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();发布于 2013-11-26 07:01:15
您可以使用以下方法:
IEnumerable<ICSharpCode.NRefactory.CSharp.Attribute> GetAttributes(TypeDeclaration typeDeclaration)
{
return typeDeclaration.Members
.SelectMany(member => member
.Attributes
.SelectMany(attr => attr.Attributes));
}https://stackoverflow.com/questions/19297758
复制相似问题