anchor.diff:  CA1033,InterfaceMethodsShouldBeCallableByChildTypes,Microsoft.Api.Design.Guidelines,Microsoft.AnalyzerPowerPack,Interface methods should be callable by child types,An unsealed externally visible type provides an explicit method implementation of a public interface and does not provide an alternative externally visible method that has the same name.,Yes,485847,3981,0.008193938,693.9886297,Design,High,Ported,,
   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,,,WHY?
  +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,#N/A,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,No,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
  
positive.code: CA2112,SecuredTypesShouldNotExposeFields,Desktop,#N/A,Secured types should not expose fields,"A public or protected type contains public fields and is secured by Link Demands. If code has access to an instance of a type that is secured by a link demand, the code does not have to satisfy the link demand to access the fields of the type.",Yes,9409,0,0,,Security,Low,,,
  CA2108,ReviewDeclarativeSecurityOnValueTypes,Desktop,#N/A,Review declarative security on value types,A public or protected value type is secured by Data Access or Link Demands.,Yes,136,0,0,,Security,Low,,,
  CA2114,MethodSecurityShouldBeASupersetOfType,Desktop,#N/A,Method security should be a superset of type,A method should not have both method-level and type-level declarative security for the same action.,Yes,7,0,0,,Security,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,Low,,,
  CA1012,AbstractTypesShouldNotHaveConstructors,Microsoft.Api.Design.Guidelines,Microsoft.AnalyzerPowerPack,Abstract types should not have constructors,"Constructors on abstract types can be called only by derived types. Because public constructors create instances of a type, and you cannot create instances of an abstract type, an abstract type that has a public constructor is incorrectly designed.",Yes,379125,425,0.001121002,4976.602085,Design,High,Ported,,
  CA1014,MarkAssembliesWithClsCompliant,Microsoft.Api.Design.Guidelines,System.Runtime.Analyzers,Mark assemblies with CLSCompliant,"The Common Language Specification (CLS) defines naming restrictions, data types, and rules to which assemblies must conform if they will be used across programming languages. Good design dictates that all assemblies explicitly indicate CLS compliance by using CLSCompliantAttribute . If this attribute is not present on an assembly, the assembly is not compliant.",Yes,2586566,4600,0.00177842,3605.854943,Design,High,Ported,,
  CA1052,StaticHolderTypesShouldBeSealed,Microsoft.Api.Design.Guidelines,Microsoft.AnalyzerPowerPack,Static holder types should be sealed,A public or protected type contains only static members and is not declared by using the sealed (C# Reference) (NotInheritable) modifier. A type that is not meant to be inherited should be marked by using the sealed modifier to prevent its use as a base type.,Yes,161447,235,0.001455586,3577.96092,Design,High,Ported,,
  
negative.code: Id,Name,Proposed Analyzer,Existing Analyzer,Title,Description,VS Built-In,Triggered,Suppressed,% Suppressed,Rank,Category,Original Priority,Port?,Notes,Dependency
  CA2124,WrapVulnerableFinallyClausesInOuterTry,Desktop,#N/A,Wrap vulnerable finally clauses in outer try,A public or protected method contains a try/finally block. The finally block appears to reset the security state and is not itself enclosed in a finally block.,Yes,2527,5,0.001978631,1719.676689,Security,Low,,,
  CA2126,TypeLinkDemandsRequireInheritanceDemands,Desktop,#N/A,Type link demands require inheritance demands,A public unsealed type is protected by using a link demand and has an overridable method. Neither the type nor the method is protected by using an inheritance demand.,Yes,3318,7,0.002109705,1668.895405,Security,Low,,,
  CA2122,DoNotIndirectlyExposeMethodsWithLinkDemands,Desktop,#N/A,Do not indirectly expose methods with link demands,A public or protected member has Link Demands and is called by a member that does not perform any security checks. A link demand checks the permissions of the immediate caller only.,Yes,733224,7044,0.009606887,610.5241757,Security,High,,,FxCopSDKUtilities
  