.NET Roslyn:运行时配置

.NET Roslyn : runtime configuration

我将使用 Roslyn 代码分析器开发一些规则。这条规则是为了控制命名空间的访问。 例如,DAL 只能使用内核。如果视图使用 DAL,我想要一个警告。

我使用'Visual Studio 2015 Community Edition'中的模板"Analyzer with Code Fix (NuGet + VSIX)"来生成插件。

我已经做了一些测试,效果很好。然而,规则是硬写在代码中的。我不知道如何在运行时配置规则。 最好是解决方案或项目中的配置文件。

你能举个例子吗?

谢谢。

解决方案简历:

  1. 在分析的项目中添加Visual Studio中的文件。
  2. 用编辑器打开.csproj修改配置文件的item组

    <None Include="test.txt" /> -> <AdditionalFiles Include="test.txt" />

Example to read the file!

您可以通过编译器的 AdditionalFiles items in the .csproj. They get expanded into /additionalfile:<path> 命令行选项添加分析器运行时配置。在 VS“15”预览中,您可以从 UI:

设置此项会将以下内容添加到您的 .csproj:

<ItemGroup>
  <AdditionalFiles Include="test.txt" />
</ItemGroup>

您的分析器可以通过 AnalyzerOptions.AdditionalFiles, available in CompilationStartAnalysisContext.Options.

访问它们