- 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.
推薦閱讀
- Java 開(kāi)發(fā)從入門(mén)到精通(第2版)
- Rust編程:入門(mén)、實(shí)戰(zhàn)與進(jìn)階
- Developing Mobile Web ArcGIS Applications
- Java設(shè)計(jì)模式及實(shí)踐
- Java 11 Cookbook
- 深入淺出Serverless:技術(shù)原理與應(yīng)用實(shí)踐
- PHP 7+MySQL 8動(dòng)態(tài)網(wǎng)站開(kāi)發(fā)從入門(mén)到精通(視頻教學(xué)版)
- Python3.5從零開(kāi)始學(xué)
- Kubernetes進(jìn)階實(shí)戰(zhàn)
- PrimeFaces Blueprints
- Building Dynamics CRM 2015 Dashboards with Power BI
- Backbone.js Testing
- Penetration Testing with the Bash shell
- Responsive Web Design with jQuery
- SCRATCH編程課:我的游戲我做主