获取ReferenceLocation的符号;varreferences=SymbolFinder.FindReferencesAsync(typeOfInterest,solution).Result;foreach(varreferenceinreferences){//reference.Locations=>symbol?这部分工作正常,SymbolFinder返回正确的ReferenceLocations(手动检查小时)。我实际上对这些位置的符号感兴趣,以获取有关引用的更多(语义)信息,因此我可以过滤/使用它(例如,仅处理属性)。关于Roslyn的公开信息似乎很少,而且我在SDK中预览的示例中找不到任何与SymbolFinder结果匹配的SymbolFinder。所以这是我的问题:是否有可能获得与ReferenceLocation对应的符号?这个怎么样?所以在任何这些位置都没有严格的“符号”,至少不是一个固有的概念。您可以做的就是占据那个位置,并找到封闭的符号。就可以得到该位置的SyntaxTree,得到Document。从那里调用GetSemanticModelAsync,然后调用ISemanticModel.GetEnclosingSymbol。例如,下面是为FAR本身执行此操作的一些(内部)代码:http://source.roslyn.codeplex.com/#Microsoft.CodeAnalysis.Workspaces/FindSymbols/ReferenceLocationExtensions.cs#45dad82331ae06ef以上是C#学习教程:获取ReferenceLocation如果对你有用,需要了解更多C#学习教程,希望大家多多关注符号分享的全部内容。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
