- Roslyn Cookbook
- Manish Vasani
- 277字
- 2021-07-15 17:07:40
How to do it...
- Open a C# project, say ClassLibrary, with the analyzer NuGet package System.Runtime.Analyzers.nupkg prerelease version 1.2.0-beta2 installed in it.
- Add the following source code to the project and verify that no CA1813: Avoid unsealed attributes is fired:
using System;
namespace ClassLibrary
{
[AttributeUsage(AttributeTargets.All)]
public class MyAttribute: Attribute
{
}
}
- In the solution explorer, navigate to ClassLibary | References | Analyzers, right-click on the Analyzers node and execute the context menu command Open Active Rule Set:

- In the Rule Set editor, search CA1813 in the textbox in the top-right corner.
- For the CA1813, search the result listed under System.Runtime.Analyzers, change the Action from None to Warning, and hit save:

- We should now see a CA1813 warning being reported on our attribute definition in the source code.
- In the solution explorer, verify that the project now contains that a new ClassLibrary.ruleset item, and a new CodeAnalysisRuleset property was added to the project file:
<CodeAnalysisRuleSet>ClassLibrary.ruleset</CodeAnalysisRuleSet>
- Open ClassLibrary.ruleset in a text editor outside of Visual Studio and verify that it has the following rule action specification for CA1813:
<Rules AnalyzerId="System.Runtime.Analyzers" RuleNamespace="System.Runtime.Analyzers">
<Rule Id="CA1813" Action="Warning" />
</Rules>
- Edit the ruleset file to change the ruleset Action for CA1813 from Warning to Error and save the file.
- Switch back to Visual Studio and confirm that the source code editor now shows a red squiggle and that the error list also reports an error for CA1813:

- Double-click on ClassLibrary.ruleset in the solution explorer to open it with the Rule Set editor and verify that the rule severity entry for CA1813 is now showing as Error.
- Build the project and verify that the error CA1813 is reported, confirming that the ruleset setting is preserved for command-line builds as well.
推薦閱讀
- Designing Machine Learning Systems with Python
- 圖解Java數據結構與算法(微課視頻版)
- 算法訓練營:入門篇(全彩版)
- 程序員面試算法寶典
- Microsoft Dynamics GP 2013 Reporting, Second Edition
- PHP+MySQL網站開發項目式教程
- Java 9模塊化開發:核心原則與實踐
- The Complete Coding Interview Guide in Java
- Visual C++開發入行真功夫
- Mastering openFrameworks:Creative Coding Demystified
- Mastering Business Intelligence with MicroStrategy
- 用案例學Java Web整合開發
- 輕松上手2D游戲開發:Unity入門
- 快速入門與進階:Creo 4·0全實例精講
- Julia 1.0 Programming Complete Reference Guide