【问题标题】:Invoke method of analyzed assembly from a Roslyn Code Analyzer从 Roslyn 代码分析器调用分析程序集的方法
【发布时间】:2021-10-28 23:11:49
【问题描述】:

我有一个 C# roslyn 代码分析器,它需要分析给定类的泛型方法调用的使用场景。我正在收集对方法、泛型类型参数等的所有引用,然后想要调用方法(通过反射)来分析输出以报告分析器中的潜在诊断。有没有从 Roslyn-Compilation.Assembly 到 System.Reflection.Assembly 的方法?如果没有,还有其他方法吗?

Analyzer 项目和要分析的解决方案在我的控制之下。

谢谢!

【问题讨论】:

  • 不清楚从一个程序集到另一个程序集的含义是什么。请详细描述您的问题,如果有帮助,请添加代码示例。
  • 即使你能做到这一点,你真的不应该这样做。例如,如果这样的方法包含while (true) { } 怎么办。这很可能在开发人员键入代码时发生,并且诸如 Visual Studio 之类的 IDE 可能决定在任何时间点运行分析器。此外,代码可能会以各种不良方式崩溃,并导致编译器或您的 IDE 崩溃。
  • @KrisVandermotten 有效

标签: c# .net reflection roslyn roslyn-code-analysis


【解决方案1】:

您不能这样做:当您的分析器正在运行时,我们实际上还没有构建程序集。此外,不能保证您构建的东西可以实际运行。如果我使用 Windows 机器说构建一个只能在 Linux 上运行的项目......那将无法正常工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-11
    • 1970-01-01
    • 1970-01-01
    • 2021-12-16
    • 1970-01-01
    相关资源
    最近更新 更多