- Roslyn Cookbook
- Manish Vasani
- 227字
- 2021-07-15 17:07:39
How to do it...
- Open a C# project, say ClassLibrary, with the analyzer NuGet package System.Runtime.Analyzers.nupkg pre-release version 1.2.0-beta2 installed in it.
- In the solution explorer, expand References | Analyzers nodes to view the analyzer assemblies installed through the analyzer NuGet package(s). We should see two analyzer assemblies, System.Runtime.Analyzers and System.Runtime.CSharp.Analyzers:

- Expand the System.Runtime.Analyzers node to view all the CAXXXX rules implemented in the assembly and click on a specific rule, say CA1813: Avoid unsealed attributes, to view the rule properties, such as ID, Message, Title, Description, Category, Effective severity, Enabled by default, and so on, in the Properties Window:

- Note that the CA1813 rule's Enabled by default is False, which means that the rule is turned off by default. We can confirm this by adding the following source code that violates this rule because we declared a public unsealed attribute, but CA1813 is not reported for the violation:
using System;
namespace ClassLibrary
{
[AttributeUsage(AttributeTargets.All)]
public class MyAttribute: Attribute
{
}
}
- Right-click on the rule node, click on Set Rule Set Severity, and change the severity from Default to Warning:

- Confirm that CA1813 is now reported for the preceding code:

- Save the current project and then close and re-open the solution.
- Verify that the warning CA1813 still shows up for the preceding source code, confirming that the rule set severity change was persisted for the project.
推薦閱讀
- 機器學習系統(tǒng):設計和實現(xiàn)
- MySQL數(shù)據(jù)庫應用與管理 第2版
- 深入淺出Java虛擬機:JVM原理與實戰(zhàn)
- iOS開發(fā)實戰(zhàn):從零基礎到App Store上架
- Apache Karaf Cookbook
- 微信小程序項目開發(fā)實戰(zhàn)
- 響應式架構(gòu):消息模式Actor實現(xiàn)與Scala、Akka應用集成
- Python3.5從零開始學
- Beginning C++ Game Programming
- 實戰(zhàn)Java高并發(fā)程序設計(第2版)
- Lift Application Development Cookbook
- 算法設計與分析:基于C++編程語言的描述
- Python Projects for Kids
- SFML Game Development
- Arduino Electronics Blueprints