【发布时间】:2017-07-09 06:09:54
【问题描述】:
我想使用 Roslyn 创建一个 Visual Studio Extension(VSIX)。此扩展应该找到所有调用,然后查找它们的定义以分析在它们上定义的属性。方法的定义可以在解决方案中的任何位置。
我的第一堂课是这样的:
namespace MainProject
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine(BusinessProject.Calc.AddNumbers(5, 8));
}
}
}
我的第二堂课是这样的:
namespace BusinessProject
{
public class Calc
{
[CustomAttr("Do something")]
public static long AddNumbers(int a, int b)
{
return a + b;
}
}
}
在上面的示例中,在 Program 类中,我调用了 AddNumbers 方法。我想 1) 分析代码,2) 找到这个调用,3) 获取类 Calc 中引用方法的所有属性,4) 处理属性参数,5) 然后发出警告/错误如果需要的话。 我可以通过 RegisterCodeBlockAction 分析当前类以查找所有调用,但我不能做的是访问整个解决方案以查找调用的定义,然后访问引用的属性。
如何在RegiserCodeBlockAction中访问整个解决方案?
【问题讨论】:
标签: c# visual-studio roslyn