【问题标题】:Check namespaces relative to folder in solution检查解决方案中相对于文件夹的命名空间
【发布时间】:2016-02-21 01:15:37
【问题描述】:

我正在尝试创建一个DiagnosticAnalyzer,用于检测命名空间声明何时不同于 VS 项目中的目录位置。

例子:

Solution
  - Project
     - ProjectFolder
        - MyClass.cs

namespace Project.ProjectFolder // Good
namespace Project.OtherSubNamespace // Bad, different from the location

我现在面临的问题是从分析器中的当前 SymbolAnalysisContext 中找到源路径(相对于项目)。在代码修复提供程序中,您将使用 Document 类,但我不确定是否可以从 SymbolAnalysisContext 中使用。

【问题讨论】:

    标签: c# visual-studio namespaces roslyn roslyn-code-analysis


    【解决方案1】:

    使用被分析符号的DeclaringSyntaxReferences property。

    请注意,可能有零个或两个或多个引用。

    【讨论】:

    • 我明白了,我可以得到源文件的路径。但是有没有办法获得当前的解决方案目录?有了这些信息,我可以使路径相对并检查相对路径是否对应于命名空间。我真的只需要源文件的项目路径!
    • 不容易,因为分析器可以在解决方案层以下(和 VS 之外)运行
    • 您也许可以通过 MEF 从 VS 全局 ServiceProvider 中获取 VisualStudioWorkspace,但这会很麻烦。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-12-14
    • 1970-01-01
    • 2010-09-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多