anchor.diff:  RS0019,#N/A,Roslyn.Diagnostics.Analyzers,Roslyn.Diagnostics.Analyzers,SymbolDeclaredEvent must be generated for source symbols,"Compilation event queue is required to generate symbol declared events for all declared source symbols. Hence, every source symbol type or one of it's base types must generate a symbol declared event.",,,,,,Reliability,,,,
   RS0024,#N/A,Roslyn.Diagnostics.Analyzers,Roslyn.Diagnostics.Analyzers,The contents of the public API files are invalid,#N/A,,,,,,ApiDesign,,,,
   CA1306,SetLocaleForDataTypes,System.Data,#N/A,Set locale for data types,"The locale determines culture-specific presentation elements for data, such as formatting that is used for numeric values, currency symbols, and sort order. When you create a DataTable or DataSet, you should explicitly set the locale.",Yes,486816,1204,0.002473214,2299.584887,Globalization,High,,,Dataflow
  -CA2100,#N/A,System.Data,#N/A,Review SQL queries for security vulnerabilities,A method sets the System.Data.IDbCommand.CommandText property by using a string that is built from a string argument to the method. This rule assumes that the string argument contains user input. A SQL command string that is built from user input is vulnerable to SQL injection attacks.,Yes,418391,3364,0.008040326,699.1734406,Security,High,,,Dataflow
  +CA2100,ReviewSqlQueriesForSecurityVulnerabilities,System.Data,#N/A,Review SQL queries for security vulnerabilities,A method sets the System.Data.IDbCommand.CommandText property by using a string that is built from a string argument to the method. This rule assumes that the string argument contains user input. A SQL command string that is built from user input is vulnerable to SQL injection attacks.,Yes,418391,3364,0.008040326,699.1734406,Security,High,,,Dataflow
   CA3063,UseXmlReaderForDataSetReadXml,System.Data,#N/A,Use XmlReader for DataSet ReadXml,"Do not use unsafe overloads of System.Data.DataSet.ReadXml. This API internally enables DTD processing on the XML reader instance used, and uses UrlResolver for resolving external XML entities. The outcome is information disclosure. Content from file system or network shares for the machine processing the XML can be exposed to attacker. In addition, an attacker can use this as a DoS vector.",No,,,,,,,,,
   CA3064,UseXmlReaderForDataSetReadXmlSchema,System.Data,#N/A,Use XmlReader for DataSet ReadXmlSchema,"Do not use unsafe overloads of System.Data.DataSet.ReadXmlSchema. This API internally enables DTD processing on the XML reader instance used, and uses UrlResolver for resolving external XML entities. The outcome is information disclosure. Content from file system or network shares for the machine processing the XML can be exposed to attacker. In addition, an attacker can use this as a DoS vector.",No,,,,,,,,,
   CA3065,ReviewDataViewCollectionString,System.Data,#N/A,Review DataView CollectionString,"Review code to insure that usage of System.Data.DataViewManager.DataViewSettingCollectionString input is sanitized to not contain DTD. Enabling DTD processing on the XML reader and using UrlResolver for resolving external XML entities may lead to information disclosure. Content from file system or network shares for the machine processing the XML can be exposed to attacker. In addition, an attacker can use this as a DoS vector.",No,,,,,,,,,
   CA3071,UseXmlReaderForDataTableReadXml,System.Data,#N/A,Use XmlReader for DataTable ReadXml,"Do not use unsafe overloads of System.Data.DataTable.ReadXml. This API internally enables DTD processing on the XML reader instance used, and uses UrlResolver for resolving external XML entities. The outcome is information disclosure. Content from file system or network shares for the machine processing the XML can be exposed to attacker. In addition, an attacker can use this as a DoS vector.",No,,,,,,,,,
   CA3072,UseXmlReaderForDataTableReadXmlSchema,System.Data,#N/A,Use XmlReader for DataTable ReadXmlSchema,"Checks for usage of an unsafe overload of  System.Data.DataTable.ReadXmlSchema. This API internally enables DTD processing on the XML reader instance used, and uses UrlResolver for resolving external XML entities. The outcome is information disclosure. Content from file system or network shares for the machine processing the XML can be exposed to attacker. In addition, an attacker can use this as a DoS vector.",No,,,,,,,,,
  -CA2200,RethrowToPreserveStackDetails,System.Runtime,Microsoft.AnalyzerPowerPack,Rethrow to preserve stack details,"An exception is rethrown and the exception is explicitly specified in the throw statement. If an exception is rethrown by specifying the exception in the throw statement, the list of method calls between the original method that threw the exception and the current method is lost.",Yes,713166,2048,0.002871702,2038.230737,Usage,High,Ported,,
  +CA2200,RethrowToPreserveStackDetails,System.Runtime,Microsoft.AnalyzerPowerPack,Rethrow to preserve stack details,"An exception is rethrown and the exception is explicitly specified in the throw statement. If an exception is rethrown by specifying the exception in the throw statement, the list of method calls between the original method that threw the exception and the current method is lost.",Yes,713166,2048,0.002871702,2038.230737,Usage,High,Ported,,None
   CA2215,DisposeMethodsShouldCallBaseClassDispose,System.Runtime,#N/A,Dispose Methods Should Call Base Class Dispose,"If a type inherits from a disposable type, it must call the Dispose method of the base type from its own Dispose method.",Yes,37586,119,0.003166072,1445.01623,Usage,Low,Yes,,Dataflow
  -CA2241,#N/A,System.Runtime,#N/A,Provide correct arguments to formatting methods,"The format argument that is passed to System.String.Format does not contain a format item that corresponds to each object argument, or vice versa.",Yes,275305,236,0.000857231,6345.796697,Usage,High,,,Dataflow
  +CA2241,ProvideCorrectArgumentsToFormattingMethods,System.Runtime,#N/A,Provide correct arguments to formatting methods,"The format argument that is passed to System.String.Format does not contain a format item that corresponds to each object argument, or vice versa.",Yes,275305,236,0.000857231,6345.796697,Usage,High,Yes,,Dataflow
   CA1824,MarkAssembliesWithNeutralResourcesLanguage,System.Runtime,#N/A,Mark assemblies with NeutralResourcesLanguageAttribute,The NeutralResourcesLanguage attribute informs the ResourceManager of the language that was used to display the resources of a neutral culture for an assembly. This improves lookup performance for the first resource that you load and can reduce your working set.,Yes,807994,798,0.000987631,5981.39139,Performance,High,,,None
  -CA2146,#N/A,System.Runtime,#N/A,Types must be at least as critical as their base types and interfaces,"This rule is raised when a derived type has a security transparency attribute that is not as critical as its base type or implemented interface. Only critical types can derive from critical base types or implement critical interfaces, and only critical or safe-critical types can derive from safe-critical base types or implement safe-critical interfaces.",No,2865,2,0.00069808,4952.331027,Security,Low,,,
  +CA2146,TypesMustBeAtLeastAsCriticalAsBaseTypes,System.Runtime,#N/A,Types must be at least as critical as their base types and interfaces,"This rule is raised when a derived type has a security transparency attribute that is not as critical as its base type or implemented interface. Only critical types can derive from critical base types or implement critical interfaces, and only critical or safe-critical types can derive from safe-critical base types or implement safe-critical interfaces.",No,2865,2,0.00069808,4952.331027,Security,Low,,,
   CA1820,TestForEmptyStringsUsingStringLength,System.Runtime,System.Runtime.Analyzers,Test for empty strings using string length,Comparing strings by using the String.Length property or the String.IsNullOrEmpty method is significantly faster than using Equals.,Yes,1121246,2134,0.00190324,3178.633057,Performance,High,Ported,,
   CA1813,AvoidUnsealedAttributes,System.Runtime,System.Runtime.Analyzers,Avoid unsealed attributes,"The .NET Framework class library provides methods for retrieving custom attributes. By default, these methods search the attribute inheritance hierarchy. Sealing the attribute eliminates the search through the inheritance hierarchy and can improve performance.",Yes,219135,401,0.001829922,2918.545808,Performance,High,Ported,,
   CA1309,UseOrdinalStringComparison,System.Runtime,System.Runtime.Analyzers,Use ordinal stringcomparison,"A string comparison operation that is nonlinguistic does not set the StringComparison parameter to either Ordinal or OrdinalIgnoreCase. By explicitly setting the parameter to either StringComparison.Ordinal or StringComparison.OrdinalIgnoreCase, your code often gains speed, becomes more correct, and becomes more reliable.",Yes,450803,879,0.001949854,2899.697623,Globalization,High,Ported,,
  -CA2134,#N/A,System.Runtime,#N/A,Methods must keep consistent transparency when overriding base methods,This rule is raised when a method marked by using the SecurityCriticalAttribute overrides a method that is transparent or marked by using the SecuritySafeCriticalAttribute. The rule also is raised when a method that is transparent or marked by using the SecuritySafeCriticalAttribute overrides a method that is marked by using a SecurityCriticalAttribute. The rule is applied when overriding a virtual method or implementing an interface.,No,3916,5,0.001276813,2813.914389,Security,Low,,,
  -CA2217,DoNotMarkEnumsWithFlags,Microsoft.Api.Design.Guidelines,System.Runtime.Analyzers,Do not mark enums with FlagsAttribute,"An externally visible enumeration is marked by using FlagsAttribute, and it has one or more values that are not powers of two or a combination of the other defined values on the enumeration.",Yes,33479,117,0.003494728,1294.742374,Usage,High,Ported,,
  -CA2205,UseManagedEquivalentsOfWin32Api,System.Runtime.InteropServices,#N/A,Use managed equivalents of win32 api,An operating system invoke method is defined and a method that has the equivalent functionality is located in the .NET Framework class library.,Yes,28980,117,0.004037267,1105.227445,Usage,Low,Yes,,
  -CA2235,MarkAllNonSerializableFields,Desktop,Microsoft.AnalyzerPowerPack,Mark all non-serializable fields,An instance field of a type that is not serializable is declared in a type that is serializable.,Yes,136128,564,0.004143159,1239.138299,Usage,Low,Ported,,
  +CA2134,MethodsMustOverrideWithConsistentTransparency,System.Runtime,#N/A,Methods must keep consistent transparency when overriding base methods,This rule is raised when a method marked by using the SecurityCriticalAttribute overrides a method that is transparent or marked by using the SecuritySafeCriticalAttribute. The rule also is raised when a method that is transparent or marked by using the SecuritySafeCriticalAttribute overrides a method that is marked by using a SecurityCriticalAttribute. The rule is applied when overriding a virtual method or implementing an interface.,No,3916,5,0.001276813,2813.914389,Security,Low,,,
  +CA2217,DoNotMarkEnumsWithFlags,Microsoft.Api.Design.Guidelines,System.Runtime.Analyzers,Do not mark enums with FlagsAttribute,"An externally visible enumeration is marked by using FlagsAttribute, and it has one or more values that are not powers of two or a combination of the other defined values on the enumeration.",Yes,33479,117,0.003494728,1294.742374,Usage,High,Ported,,None
  +CA2205,UseManagedEquivalentsOfWin32Api,System.Runtime.InteropServices,#N/A,Use managed equivalents of win32 api,An operating system invoke method is defined and a method that has the equivalent functionality is located in the .NET Framework class library.,Yes,28980,117,0.004037267,1105.227445,Usage,Low,Yes,,None
  +CA2235,MarkAllNonSerializableFields,Desktop,Microsoft.AnalyzerPowerPack,Mark all non-serializable fields,An instance field of a type that is not serializable is declared in a type that is serializable.,Yes,136128,564,0.004143159,1239.138299,Usage,Low,Ported,,None
   CA1307,SpecifyStringComparison,System.Runtime,#N/A,Specify StringComparison,A string comparison operation uses a method overload that does not set a StringComparison parameter.,Yes,1556401,3723,0.002392057,2588.617807,Globalization,High,,,None
  -CA2202,#N/A,System.Runtime,#N/A,Do not dispose objects multiple times,A method implementation contains code paths that could cause multiple calls to System.IDisposable.Dispose or a Dispose equivalent (such as a Close() method on some types) on the same object.,Yes,1034185,2477,0.002395123,2511.18582,Usage,High,,,Dataflow
  -CA2143,#N/A,System.Runtime,#N/A,Transparent methods should not use security demands,"Security transparent code should not be responsible for verifying the security of an operation, and therefore should not demand permissions. Security transparent code should use full demands to make security decisions and safe-critical code should not rely on transparent code to have made the full demand.",No,13049,22,0.001685953,2441.098513,Security,Low,,,
  -CA2214,DoNotCallOverridableMethodsInConstructors,System.Runtime,Microsoft.AnalyzerPowerPack,Do not call overridable methods in constructors,"When a constructor calls a virtual method, the constructor for the instance that invokes the method may not have executed.",Yes,681532,2824,0.004143606,1407.828453,Usage,High,Ported,,
  +CA2202,DoNotDisposeObjectsMultipleTimes,System.Runtime,#N/A,Do not dispose objects multiple times,A method implementation contains code paths that could cause multiple calls to System.IDisposable.Dispose or a Dispose equivalent (such as a Close() method on some types) on the same object.,Yes,1034185,2477,0.002395123,2511.18582,Usage,High,,,Dataflow
  +CA2143,TransparentMethodsShouldNotDemand,System.Runtime,#N/A,Transparent methods should not use security demands,"Security transparent code should not be responsible for verifying the security of an operation, and therefore should not demand permissions. Security transparent code should use full demands to make security decisions and safe-critical code should not rely on transparent code to have made the full demand.",No,13049,22,0.001685953,2441.098513,Security,Low,,,
  +CA2214,DoNotCallOverridableMethodsInConstructors,System.Runtime,Microsoft.AnalyzerPowerPack,Do not call overridable methods in constructors,"When a constructor calls a virtual method, the constructor for the instance that invokes the method may not have executed.",Yes,681532,2824,0.004143606,1407.828453,Usage,High,Ported,,None
   CA1816,CallGCSuppressFinalizeCorrectly,System.Runtime,#N/A,Dispose methods should call SuppressFinalize,A method that is an implementation of Dispose does not call GC.SuppressFinalize; or a method that is not an implementation of Dispose calls GC.SuppressFinalize; or a method calls GC.SuppressFinalize and passes something other than this (Me in Visual?Basic).,Yes,443318,1136,0.002562495,2203.600847,Performance,High,,,None
   CA2213,DisposableFieldsShouldBeDisposed,System.Runtime,System.Runtime.Analyzers,Disposable fields should be disposed,A type that implements System.IDisposable declares fields that are of types that also implement IDisposable. The Dispose method of the field is not called by the Dispose method of the declaring type.,Yes,347843,920,0.002644871,2095.142804,Usage,High,Ported,,Dataflow
   CA2201,DoNotRaiseReservedExceptionTypes,System.Runtime,#N/A,Do not raise reserved exception types,This makes the original error difficult to detect and debug.,Yes,1439723,9215,0.006400537,962.150389,Usage,High,Yes,,None
  
positive.code: CA3070,UseXmlReaderForDeserialize,System.Xml,#N/A,Use XmlReader for Deserialize,"Do not use unsafe overloads of System.Xml.Serialization.XmlSerializer.Deserialize. This API internally enables DTD processing on the XML reader instance used but doesn't allow external entity resolution, enabling the attacker to DoS the machine processing the XML with a single especially crafted XML input.",No,,,,,,,,,
  CA3073,ReviewTrustedXsltUse,System.Xml,#N/A,Review Trusted Xslt use,"Review code to insure that System.Xml.Xsl.XsltSettings::TrustedXslt is set from a trusted source. This pattern allows processing script within XSL, which, on untrusted XSL input, may lead to malicious code execution.",No,,,,,,,,,
  CA3074,ReviewClassesDerivedFromXmlTextReader,System.Xml,#N/A,Review classes derived from XmlTextReader,"Review code to insure that  DTD prosessing is disabled on all instances of classes derived from System.Xml.XmlTextReader. Enabling DTD processing on the XML reader and using UrlResolver for resolving external XML entities may lead to information disclosure. Content from file system or network shares for the machine processing the XML can be exposed to attacker. In addition, an attacker can use this as a DoS vector.",No,,,,,,,,,
  CA2204,#N/A,Text.Analyzers,#N/A,Literals should be spelled correctly,A literal string in a method body contains one or more words that are not recognized by the Microsoft spelling checker library.,Yes,1364858,19401,0.014214666,431.6026604,Naming,Low,,,Dataflow
  CA1703,ResourceStringsShouldBeSpelledCorrectly,Text.Analyzers,#N/A,Resource strings should be spelled correctly,A resource string contains one or more words that are not recognized by the Microsoft spelling checker library.,Yes,247983,8213,0.033119206,162.8789636,Naming,Low,,,WordParser
  
negative.code: CA1035,ICollectionImplementationsHaveStronglyTypedMembers,Microsoft.Api.Design.Guidelines,#N/A,ICollection implementations have strongly typed members,This rule requires ICollection implementations to provide strongly typed members so that users are not required to cast arguments to the Object type when they use the functionality that is provided by the interface. This rule assumes that the type that implements ICollection does so to manage a collection of instances of a type that is stronger than Object.,Yes,84344,611,0.007244143,680.005098,Design,Low,,,
  CA1715,IdentifiersShouldHaveCorrectPrefix,Microsoft.Api.Design.Guidelines,Microsoft.AnalyzerPowerPack,Identifiers should have correct prefix,"The name of an externally visible interface does not start with an uppercase """"I"""". The name of a generic type parameter on an externally visible type or method does not start with an uppercase """"T"""".",Yes,163866,1290,0.007872286,662.3856049,Naming,High,Ported,,
  CA1045,DoNotPassTypesByReference,Microsoft.Api.Design.Guidelines,#N/A,Do not pass types by reference,"Passing types by reference (using out or ref) requires experience with pointers, understanding how value types and reference types differ, and handling methods that have multiple return values. Library architects who design for a general audience should not expect users to master working with out or ref parameters.",Yes,523037,4636,0.008863618,645.1691193,Design,High,,Invalid Rule?,
  CA1706,ShortAcronymsShouldBeUpperCase,Microsoft.Api.Design.Guidelines,#N/A,Short acronyms should be uppercase,"This rule splits the name into words based on the casing and checks any two-letter words against a list of common two-letter words, such as ""In"" or ""My"". If a match is not found, the word is assumed to be an acronym. For parameters, the first word is ignored due to the camel casing convention used for parameter names. By convention, two-letter acronyms use all uppercase letters, and acronyms of three or more characters use Pascal casing. The following examples conform to this naming convention: 'DB', 'CR', 'Cpa', and 'Ecma'. The following examples violate the convention: 'Io', 'XML', and 'DoD', and for non-parameter names, 'xp' and 'cpl'. 'ID' is special-cased to cause a violation of this rule. 'Id' is not an acronym but is an abbreviation for 'identification'. Naming conventions provide a common look for libraries that target the common language runtime. This reduces the learning curve required for new software libraries, and increases customer confidence that the library was developed by someone with expertise in developing managed code.",,470,2,0.004255319,627.9429966,Naming,Low,Cut,Deprecated rule (replaced by 1709),
  CA1028,EnumStorageShouldBeInt32,Microsoft.Api.Design.Guidelines,#N/A,Enum Storage should be Int32,"An enumeration is a value type that defines a set of related named constants. By default, the System.Int32 data type is used to store the constant value. Although you can change this underlying type, it is not required or recommended for most scenarios.",Yes,140302,1177,0.008389046,613.5457553,Design,High,,,None
  CA1059,MembersShouldNotExposeCertainConcreteTypes,Microsoft.Api.Design.Guidelines,#N/A,Members should not expose certain concrete types,"A concrete type is a type that has a complete implementation and therefore can be instantiated. To enable widespread use of the member, replace the concrete type by using the suggested interface.",Yes,264897,2427,0.009162052,591.9064024,Design,High,,,None
  CA1002,DoNotExposeGenericLists,Microsoft.Api.Design.Guidelines,#N/A,Do not expose generic lists,"System.Collections.Generic.List&lt;(Of &lt;(T&gt;)&gt;) is a generic collection that is designed for performance, not inheritance. Therefore, List does not contain any virtual members. The generic collections that are designed for inheritance should be exposed instead.",Yes,1720656,18601,0.010810412,576.8229873,Design,Low,,,None
  CA1722,IdentifiersShouldNotHaveIncorrectPrefix,Microsoft.Api.Design.Guidelines,#N/A,Identifiers should not have incorrect prefix,"By convention, only certain programming elements have names that begin with a specific prefix.",Yes,28805,234,0.00812359,548.952873,Naming,Low,,,
  CA1700,DoNotNameEnumValuesReserved,Microsoft.Api.Design.Guidelines,#N/A,Do not name enum values 'Reserved',"This rule assumes that an enumeration member that has a name that contains """"reserved"""" is not currently used but is a placeholder to be renamed or removed in a future version. Renaming or removing a member is a breaking change.",Yes,17591,143,0.008129157,522.2301097,Naming,Low,,,
  CA1025,ReplaceRepetitiveArgumentsWithParamsArray,Microsoft.Api.Design.Guidelines,#N/A,Replace repetitive arguments with params array,Use a parameter array instead of repeated arguments when the exact number of arguments is unknown and when the variable arguments are the same type or can be passed as the same type.,Yes,11210,87,0.007760928,521.7940105,Design,Low,,,
  CA2218,OverrideGetHashCodeOnOverridingEquals,Microsoft.Api.Design.Guidelines,#N/A,Override GetHashCode on overriding Equals,"GetHashCode returns a value, based on the current instance, that is suited for hashing algorithms and data structures such as a hash table. Two objects that are the same type and are equal must return the same hash code.",Yes,34660,25,0.000721293,6294.018313,Usage,High,Merge?,,None
  CA1031,DoNotCatchGeneralExceptionTypes,Microsoft.Api.Design.Guidelines,#N/A,Do not catch general exception types,"General exceptions should not be caught. Catch a more specific exception, or rethrow the general exception as the last statement in the catch block.",Yes,2802219,35947,0.012828048,502.6097536,Design,Low,,,None (similar CA2153 already ported)
  CA1062,ValidateArgumentsOfPublicMethods,Microsoft.Api.Design.Guidelines,#N/A,Validate arguments of public methods,All reference arguments that are passed to externally visible methods should be checked against null.,Yes,2267308,29134,0.0128496,494.6076696,Design,Low,,,Dataflow
  CA2224,OverrideEqualsOnOverloadingOperatorEquals,Microsoft.Api.Design.Guidelines,#N/A,Override Equals on overloading operator equals,A public type implements the equality operator but does not override Object.Equals.,Yes,7619,11,0.001443759,2688.743696,Usage,High,Merge?,,None
  CA1004,GenericMethodsShouldProvideTypeParameter,Microsoft.Api.Design.Guidelines,#N/A,Generic methods should provide type parameter,"Inference is how the type argument of a generic method is determined by the type of argument that is passed to the method, instead of by the explicit specification of the type argument. To enable inference, the parameter signature of a generic method must include a parameter that is of the same type as the type parameter for the method. In this case, the type argument does not have to be specified. When using inference for all type parameters, the syntax for calling generic and non-generic instance methods is identical; this simplifies the usability of generic methods.",Yes,360357,4493,0.012468191,445.6727399,Design,Low,,,None
  CA1021,AvoidOutParameters,Microsoft.Api.Design.Guidelines,#N/A,Avoid out parameters,"Passing types by reference (using out or ref) requires experience with pointers, understanding how value types and reference types differ, and handling methods with multiple return values. Also, the difference between out and ref parameters is not widely understood.",Yes,673184,9276,0.013779294,422.9631753,Design,Low,,,None
  CA1006,DoNotNestGenericTypesInMemberSignatures,Microsoft.Api.Design.Guidelines,#N/A,Do not nest generic types in member signatures,"A nested type argument is a type argument that is also a generic type. To call a member whose signature contains a nested type argument, the user must instantiate one generic type and pass this type to the constructor of a second generic type. The required procedure and syntax are complex and should be avoided.",Yes,668354,10022,0.014995048,388.4620264,Design,Low,,,None
  CA1051,DoNotDeclareVisibleInstanceFields,Microsoft.Api.Design.Guidelines,#N/A,Do not declare visible instance fields,The primary use of a field should be as an implementation detail. Fields should be private or internal and should be exposed by using properties.,Yes,1291311,22729,0.017601492,347.1882335,Design,Low,,,None
  CA2207,InitializeValueTypeStaticFieldsInline,System.Runtime,#N/A,Initialize value type static fields inline,"A value type declares an explicit static constructor. To fix a violation of this rule, initialize all static data when it is declared and remove the static constructor.",Yes,13270,20,0.001507159,2735.524857,Usage,High,Yes,,None
  CA1704,IdentifiersShouldBeSpelledCorrectly,Microsoft.Api.Design.Guidelines,#N/A,Identifiers should be spelled correctly,The name of an externally visible identifier contains one or more words that are not recognized by the Microsoft spelling checker library.,Yes,4050045,134475,0.033203335,198.9998864,Naming,Low,,,NamingService
  CA1707,IdentifiersShouldNotContainUnderscores,Microsoft.Api.Design.Guidelines,#N/A,Identifiers should not contain underscores,"By convention, identifier names do not contain the underscore (_) character. This rule checks namespaces, types, members, and parameters.",Yes,1216136,42995,0.035353776,172.1168937,Naming,Low,,,None
  CA1709,IdentifiersShouldBeCasedCorrectly,Microsoft.Api.Design.Guidelines,#N/A,Identifiers should be cased correctly,"By convention, parameter names use camel casing and namespace, type, and member names use Pascal casing.",Yes,3261791,137633,0.04219553,154.3636525,Naming,Low,,,NamingService
  CA1705,LongAcronymnsShouldBePascalBased,Microsoft.Api.Design.Guidelines,#N/A,Long acronyms should be pascal-cased,"This rule assumes it has found an acronym when the name contains four uppercase letters in a row, or at the end of the name, three uppercase letters in a row. By convention, two-letter acronyms use all uppercase letters, and acronyms of three or more characters use Pascal casing. The following examples conform to this naming convention: 'DB', 'CR', 'Cpa', and 'Ecma'. The following examples violate the convention: 'Io', 'XML', and 'DoD', and for non-parameter names, 'xp' and 'cpl'. Naming conventions provide a common look for libraries that target the common language runtime. This reduces the learning curve required for new software libraries, and increases customer confidence that the library was developed by someone with expertise in developing managed code.",,2574,90,0.034965035,97.54340432,Naming,Low,Cut,Deprecated rule (replaced by 1709),
  CA2216,DisposableTypesShouldDeclareFinalizer,System.Runtime,#N/A,Disposable types should declare finalizer,"A type that implements System.IDisposable and has fields that suggest the use of unmanaged resources does not implement a finalizer, as described by Object.Finalize.",Yes,8011,13,0.001622769,2405.571878,Usage,High,Yes,,InternalUtilities
  CA2231,OverloadOperatorEqualsOnOverridingValueTypeEquals,Microsoft.Api.Design.Guidelines,System.Runtime.Analyzers,Overload operator equals on overriding value type Equals,"In most programming languages there is no default implementation of the equality operator (==) for value types. If your programming language supports operator overloads, you should consider implementing the equality operator. Its behavior should be identical to that of Equals",Yes,15312,25,0.001632706,2563.248351,Usage,High,Yes,,None
  CA2229,ImplementSerializationConstructors,Desktop,Microsoft.AnalyzerPowerPack,Implement serialization constructors,"To fix a violation of this rule, implement the serialization constructor. For a sealed class, make the constructor private; otherwise, make it protected.",Yes,58070,100,0.00172206,2766.426825,Usage,Low,Ported,,None
  CA1718,#N/A,Microsoft.Api.Design.Guidelines,#N/A,Avoid language specific type names in parameters,"Each concatenated word in the parameter name is checked against language-specific type names, in a case-insensitive manner",,4,0,0,,Naming,Low,???,,
  CA1702,CompoundWordsShouldBeCasedCorrectly,Microsoft.Api.Design.Guidelines,#N/A,Compound words should be cased correctly,Avoid creating compound words from terms which exist in the dictionary as discrete terms. Do not create a compound word such as 'StopWatch' or 'PopUp'. These terms are recognized in the dictionary and should be cased as 'Stopwatch' and 'Popup'.,Yes,,,,,,#N/A,Cut,Deprecated rule (replaced by 1709),
  CA2237,MarkISerializableTypesWithSerializable,Desktop,Microsoft.AnalyzerPowerPack,Mark ISerializable types with serializable,"To be recognized by the common language runtime as serializable, types must be marked by using the SerializableAttribute attribute even when the type uses a custom serialization routine through implementation of the ISerializable interface.",Yes,517360,1135,0.00219383,2604.482703,Usage,Low,Ported,,None
  Async002,#N/A,Microsoft.Api.Design.Guidelines,AsyncPackage,Async Method Names Should End in Async,#N/A,,,,,,Naming,,,,
  CA2236,CallBaseClassMethodsOnISerializableTypes,Desktop,#N/A,Call base class methods on ISerializable types,"To fix a violation of this rule, call the base type GetObjectData method or serialization constructor from the corresponding derived type method or constructor.",Yes,23555,57,0.002419868,1806.744169,Usage,Low,Yes,,IOperation
  CA2219,DoNotRaiseExceptionsInExceptionClauses,System.Runtime,#N/A,Do not raise exceptions in exception clauses,"When an exception is raised in a finally or fault clause, the new exception hides the active exception. When an exception is raised in a filter clause, the run time silently catches the exception. This makes the original error difficult to detect and debug.",Yes,14661,36,0.002455494,1696.670124,Usage,High,Yes,,None
  Async005,#N/A,Microsoft.Api.Design.Guidelines,AsyncPackage,Propagate CancellationTokens When Possible,#N/A,,,,,,Library,,,,
  CA2232,MarkWindowsFormsEntryPointsWithStaThread,Desktop,#N/A,Mark Windows Forms entry points with STAThread,"STAThreadAttribute indicates that the COM threading model for the application is a single-threaded apartment. This attribute must be present on the entry point of any application that uses Windows Forms; if it is omitted, the Windows components might not work correctly.",Yes,17032,43,0.002524659,1675.974803,Usage,Low,Yes,,None
  RS1001,#N/A,Microsoft.CodeAnalysis.Analyzers,Microsoft.CodeAnalysis.Analyzers,Missing diagnostic analyzer attribute,"Non-abstract sub-types of DiagnosticAnalyzer should be marked with DiagnosticAnalyzerAttribute(s). The argument to this attribute(s), if any, determine the supported languages for the analyzer. Analyzer types without this attribute will be ignored by the analysis engine.",,,,,,AnalyzerCorrectness,,,,
  RS1002,#N/A,Microsoft.CodeAnalysis.Analyzers,Microsoft.CodeAnalysis.Analyzers,Missing kind argument while registering an analyzer action,"You must specify at least one syntax/symbol kinds of interest while registering a syntax/symbol analyzer action. Otherwise, the registered action will be dead code and will never be invoked during analysis.",,,,,,AnalyzerCorrectness,,,,
  RS1003,#N/A,Microsoft.CodeAnalysis.Analyzers,Microsoft.CodeAnalysis.Analyzers,Unsupported SymbolKind argument while registering a symbol analyzer action,#N/A,,,,,,AnalyzerCorrectness,,,,
  