anchor.diff:  CA1412,MarkComSourceInterfacesAsIDispatch,System.Runtime.InteropServices,#N/A,Mark ComSource interfaces as IDispatch,"A type is marked by using the System.Runtime.InteropServices.ComSourceInterfacesAttribute attribute, and at least one of the specified interfaces is not marked by using the System.Runtime.InteropServices.InterfaceTypeAttribute attribute set to ComInterfaceType.InterfaceIsIDispatch.",Yes,558,1,0.001792115,1532.621883,Interoperability,Low,,,
   CA1408,DoNotUseAutoDualClassInterfaceType,System.Runtime.InteropServices,#N/A,Do not use AutoDual ClassInterfaceType,"Types that use a dual interface enable clients to bind to a specific interface layout. Any changes in a future version to the layout of the type or any base types will break COM clients that bind to the interface. By default, if the ClassInterfaceAttribute attribute is not specified, a dispatch-only interface is used.",Yes,4648,12,0.002581756,1420.45441,Interoperability,Low,,,
   CA2101,SpecifyMarshalingForPInvokeStringArguments,System.Runtime.InteropServices,System.Runtime.InteropServices.Analyzers,Specify marshaling for PInvoke string arguments,"A platform invoke member allows partially trusted callers, has a string parameter, and does not explicitly marshal the string. This can cause a potential security vulnerability.",Yes,230439,998,0.004330864,1238.218475,Globalization,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,,,
  +Async006,#N/A,Microsoft.Api.Design.Guidelines,AsyncPackage,Don't Mix Blocking and Async,#N/A,,,,,,Usage,,,,
   CA1414,MarkBooleanPInvokeArgumentsWithMarshalAs,System.Runtime.InteropServices,#N/A,Mark boolean PInvoke arguments with MarshalAs,The Boolean data type has multiple representations in unmanaged code.,Yes,171199,883,0.00515774,1014.688761,Interoperability,High,,,None
   CA2006,UseSafeHandleToEncapsulateNativeResources,System.Runtime.InteropServices,#N/A,Use SafeHandle to encapsulate native resources,"Use of IntPtr in managed code might indicate a potential security and reliability problem. All uses of IntPtr must be reviewed to determine whether use of a SafeHandle, or similar technology, is required in its place.",Yes,63814,334,0.005233961,918.0266694,Reliability,Low,,,
   CA1401,PInvokesShouldNotBeVisible,System.Runtime.InteropServices,System.Runtime.InteropServices.Analyzers,PInvokes should not be visible,A public or protected method in a public type has the System.Runtime.InteropServices.DllImportAttribute attribute (also implemented by the Declare keyword in Visual Basic). Such methods should not be exposed.,Yes,128953,940,0.007289478,701.0696455,Interoperability,High,Ported,,
  
positive.code: 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,,,
  CA2229,ImplementSerializationConstructors,System.Runtime,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,,,
  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,Low,,,
  CA2237,MarkISerializableTypesWithSerializable,System.Runtime,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,High,Ported,,
  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,,,
  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,Low,,,
  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
  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,,
  CA1304,SpecifyCultureInfo,System.Runtime,#N/A,Specify CultureInfo,"A method or constructor calls a member that has an overload that accepts a System.Globalization.CultureInfo parameter, and the method or constructor does not call the overload that takes the CultureInfo parameter. When a CultureInfo or System.IFormatProvider object is not supplied, the default value that is supplied by the overloaded member might not have the effect that you want in all locales.",Yes,1301330,3995,0.003069936,1991.698576,Globalization,High,,,None
  CA2236,CallBaseClassMethodsOnISerializableTypes,System.Runtime,#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,,,
  CA2208,InstantiateArgumentExceptionsCorrectly,System.Runtime,#N/A,Instantiate argument exceptions correctly,"A call is made to the default (parameterless) constructor of an exception type that is or derives from ArgumentException, or an incorrect string argument is passed to a parameterized constructor of an exception type that is or derives from ArgumentException.",Yes,774590,2637,0.003404382,1729.850661,Usage,High,,,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,Low,,,
  CA2123,#N/A,System.Runtime,#N/A,Override link demands should be identical to base,"This rule matches a method to its base method, which is either an interface or a virtual method in another type, and then compares the link demands on each. If this rule is violated, a malicious caller can bypass the link demand just by calling the unsecured method.",No,138994,437,0.003144021,1635.802273,Security,High,,,FxCopSDKUtilties
  CA1810,InitializeReferenceTypeStaticFieldsInline,System.Runtime,#N/A,Initialize reference type static fields inline,"When a type declares an explicit static constructor, the just-in-time (JIT) compiler adds a check to each static method and instance constructor of the type to make sure that the static constructor was previously called. Static constructor checks can decrease performance.",Yes,755408,2731,0.003615265,1625.933867,Performance,High,,,None
  CA2105,ArrayFieldsShouldNotBeReadOnly,System.Runtime,#N/A,Array fields should not be read only,"When you apply the read-only (ReadOnly in Visual Basic) modifier to a field that contains an array, the field cannot be changed to reference a different array. However, the elements of the array that are stored in a read-only field can be changed.",Yes,58839,177,0.003008209,1585.549919,Security,Low,,,
  CA1805,#N/A,System.Runtime,#N/A,Do not initialize unnecessarily,"The common language runtime initializes all fields to their default values before running the constructor. In most cases, initializing a field to its default value in a constructor is redundant, which degrades performance and adds to maintenance costs. One case where it is not redundant occurs when the constructor calls another constructor of the same class or a base class constructor and that constructor initializes the field to a non-default value. In this case, changing the value of the field back to its default value can be appropriate.",,900111,3408,0.0037862,1572.631276,Performance,High,Yes,,
  CA2215,#N/A,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,,,
  CA2002,DoNotLockOnObjectsWithWeakIdentity,System.Runtime,System.Runtime.Analyzers,Do not lock on objects with weak identity,An object is said to have a weak identity when it can be directly accessed across application domain boundaries. A thread that tries to acquire a lock on an object that has a weak identity can be blocked by a second thread in a different application domain that has a lock on the same object.,Yes,123953,440,0.003549733,1434.828387,Reliability,High,Ported,,
  CA1802,UseLiteralsWhereAppropriate,System.Runtime,#N/A,Use literals where appropriate,"A field is declared static and read-only (Shared and ReadOnly in Visual Basic), and is initialized by using a value that is computable at compile time. Because the value that is assigned to the targeted field is computable at compile time, change the declaration to a const (Const in Visual Basic) field so that the value is computed at compile time instead of at run?time.",Yes,156024,573,0.003672512,1414.070674,Performance,High,,,None
  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,,
  CA1800,DoNotCastUnnecessarily,System.Runtime,#N/A,Do not cast unnecessarily,"Duplicate casts decrease performance, especially when the casts are performed in compact iteration statements.",Yes,1161244,5060,0.004357396,1391.868776,Performance,High,No,,RemoveUnnecessaryCast IDE CodeFix
  CA2233,OperationsShouldNotOverflow,System.Runtime,#N/A,Operations should not overflow,You should not perform arithmetic operations without first validating the operands. This makes sure that the result of the operation is not outside the range of possible values for the data types that are involved.,Yes,177875,717,0.004030921,1302.460516,Usage,High,,,IOperation
  CA2235,MarkAllNonSerializableFields,System.Runtime,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,High,Ported,,
  CA2004,RemoveCallsToGCKeepAlive,System.Runtime,#N/A,Remove calls to GC.KeepAlive,"If you convert to SafeHandle usage, remove all calls to GC.KeepAlive (object). In this case, classes should not have to call GC.KeepAlive. This assumes they do not have a finalizer but rely on SafeHandle to finalize the OS handle for them.",Yes,16938,72,0.004250797,994.8398157,Reliability,Low,,,
  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,,,None
  CA2111,PointersShouldNotBeVisible,System.Runtime,#N/A,Pointers should not be visible,"A pointer is not private, internal, or read-only. Malicious code can change the value of the pointer, which potentially gives access to arbitrary locations in memory or causes application or system failures.",Yes,49556,248,0.005004439,938.1862479,Security,Low,,,
  CA2119,SealMethodsThatSatisfyPrivateInterfaces,System.Runtime,#N/A,Seal methods that satisfy private interfaces,"An inheritable public type provides an overridable method implementation of an internal (Friend in Visual Basic) interface. To fix a violation of this rule, prevent the method from being overridden outside the assembly.",Yes,16649,76,0.004564839,924.7617285,Security,Low,,,
  CA2109,ReviewVisibleEventHandlers,System.Runtime,#N/A,Review visible event handlers,A public or protected event-handling method was detected. Event-handling methods should not be exposed unless absolutely necessary.,Yes,249217,1465,0.005878411,918.0333759,Security,High,,,None
  
negative.code: CA5357,RijndaelCannotBeUsed,System.Security.Cryptography.Algorithms,#N/A,Do not use Rijndael,Rijndael is not recommended by SDL,No,,,,,,,,,
  CA3066,ReviewWebControlForSet_Data,System.Web,#N/A,Review WebControl for set_Data,"Review code to insure that System.Web.UI.WebControls.XmlDataSource::Data is set from a trusted source. This pattern internally enables DTD processing in XML and uses UrlResolver for resolving external XML entities, which, on untrusted input, 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,,,,,,,,,
  CA3067,ReviewWebControlForSet_DocumentContent,System.Web,#N/A,Review WebControl for set_DocumentContent,"Review code to insure that System.Web.UI.WebControls.Xml::DocumentContent is set from a trusted source. This pattern internally enables DTD processing in XML and uses UrlResolver for resolving external XML entities, which, on untrusted input, 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,,,,,,,,,
  RS0004,#N/A,Roslyn.Diagnostics.Analyzers,Roslyn.Diagnostics.Analyzers,Invoke the correct property to ensure correct use site diagnostics.,#N/A,,,,,,Usage,,,,
  CA1300,SpecifyMessageBoxOptions,System.Windows.Forms,#N/A,Specify MessageBoxOptions,"To correctly display a message box for cultures that use a right-to-left reading order, the RightAlign and RtlReading members of the MessageBoxOptions enumeration must be passed to the Show method.",Yes,283590,2427,0.00855813,637.1358121,Globalization,High,,,None
  CA1301,AvoidDuplicateAccelerators,System.Windows.Forms,#N/A,Avoid duplicate accelerators,"An access key, also known as an accelerator, enables keyboard access to a control by using the ALT key. When multiple controls have duplicate access keys, the behavior of the access key is not well defined.",Yes,2707,16,0.005910602,580.7341068,Globalization,Low,,,
  CA3050,DoNotUseXslTransform,System.Xml,#N/A,Do not use XslTransform,"Do not use obsolete and unsafe System.Xml.Xsl.XslTransform API. This API allows processing script within XSL, which, on untrusted XSL input, may lead to malicious code execution.",No,,,,,,,,,
  