- 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.
推薦閱讀
- 新編Visual Basic程序設計上機實驗教程
- Spring 5.0 Microservices(Second Edition)
- FreeSWITCH 1.8
- Rust編程:入門、實戰與進階
- 單片機C語言程序設計實訓100例:基于STC8051+Proteus仿真與實戰
- 程序員數學:用Python學透線性代數和微積分
- C#程序設計(慕課版)
- OpenNI Cookbook
- 深入淺出DPDK
- QTP自動化測試進階
- 量化金融R語言高級教程
- C# 8.0核心技術指南(原書第8版)
- Couchbase Essentials
- Hands-On Neural Network Programming with C#
- Cocos2d-x Game Development Blueprints