Switch to using globalconfig instead of ruleset for analyzer configuration (#57144)

This commit is contained in:
Stephen Toub 2021-08-10 16:15:57 -04:00 committed by GitHub
parent b7de262448
commit 03601a7a81
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
7 changed files with 3247 additions and 1101 deletions

View File

@ -90,10 +90,7 @@ csharp_preserve_single_line_statements = false:none
csharp_prefer_static_local_function = true:suggestion
csharp_prefer_simple_using_statement = false:none
csharp_style_prefer_switch_expression = true:suggestion
# Code quality
dotnet_style_readonly_field = true:suggestion
dotnet_code_quality_unused_parameters = non_public:suggestion
# Expression-level preferences
dotnet_style_object_initializer = true:suggestion
@ -157,12 +154,6 @@ csharp_space_between_method_declaration_parameter_list_parentheses = false
csharp_space_between_parentheses = false
csharp_space_between_square_brackets = false
# Analyzers
dotnet_code_quality.CA1052.api_surface = private, internal
dotnet_code_quality.CA1802.api_surface = private, internal
dotnet_code_quality.CA1822.api_surface = private, internal
dotnet_code_quality.CA2208.api_surface = public
# License header
file_header_template = Licensed to the .NET Foundation under one or more agreements.\nThe .NET Foundation licenses this file to you under the MIT license.

View File

@ -1,11 +1,11 @@
<Project>
<PropertyGroup>
<CodeAnalysisRuleset>$(MSBuildThisFileDirectory)CodeAnalysis.ruleset</CodeAnalysisRuleset>
<!-- Disable analyzers in sourcebuild -->
<RunAnalyzers Condition="'$(DotNetBuildFromSource)' == 'true'">false</RunAnalyzers>
<EnableSingleFileAnalyzer>true</EnableSingleFileAnalyzer>
</PropertyGroup>
<ItemGroup Condition="'$(RunAnalyzers)' != 'false'">
<EditorConfigFiles Include="$(MSBuildThisFileDirectory)CodeAnalysis.src.globalconfig" />
<PackageReference Include="Microsoft.DotNet.CodeAnalysis" Version="$(MicrosoftDotNetCodeAnalysisVersion)" PrivateAssets="all" IsImplicitlyDefined="true" />
<PackageReference Include="Microsoft.CodeAnalysis.NetAnalyzers" Version="$(MicrosoftCodeAnalysisNetAnalyzersVersion)" PrivateAssets="all" />
<PackageReference Include="Microsoft.CodeAnalysis.CSharp.CodeStyle" Version="$(MicrosoftCodeAnalysisCSharpCodeStyleVersion)" PrivateAssets="all" />

View File

@ -1,518 +0,0 @@
<RuleSet Name="Microsoft.Analyzers.ManagedCodeAnalysis" Description="Microsoft.Analyzers.ManagedCodeAnalysis" ToolsVersion="14.0">
<Rules AnalyzerId="Microsoft.DotNet.CodeAnalysis" RuleNamespace="Microsoft.DotNet.CodeAnalysis.Analyzers">
<Rule Id="BCL0001" Action="Warning" /> <!-- Ensure minimum API surface is respected -->
<Rule Id="BCL0010" Action="Warning" /> <!-- AppContext default value expected to be true -->
<Rule Id="BCL0011" Action="Warning" /> <!-- AppContext default value defined in if statement with incorrect pattern -->
<Rule Id="BCL0012" Action="Warning" /> <!-- AppContext default value defined in if statement at root of switch case -->
<Rule Id="BCL0015" Action="None" /> <!-- Invalid P/Invoke call -->
<Rule Id="BCL0020" Action="Warning" /> <!-- Invalid SR.Format call -->
</Rules>
<Rules AnalyzerId="Microsoft.CodeAnalysis.NetAnalyzers" RuleNamespace="Microsoft.CodeAnalysis.NetAnalyzers">
<Rule Id="CA1000" Action="None" /> <!-- Do not declare static members on generic types -->
<Rule Id="CA1001" Action="None" /> <!-- Types that own disposable fields should be disposable -->
<Rule Id="CA1002" Action="None" /> <!-- Do not expose generic lists -->
<Rule Id="CA1003" Action="None" /> <!-- Use generic event handler instances -->
<Rule Id="CA1005" Action="None" /> <!-- Avoid excessive parameters on generic types -->
<Rule Id="CA1008" Action="None" /> <!-- Enums should have zero value -->
<Rule Id="CA1010" Action="None" /> <!-- Generic interface should also be implemented -->
<Rule Id="CA1012" Action="None" /> <!-- Abstract types should not have constructors -->
<Rule Id="CA1014" Action="None" /> <!-- Mark assemblies with CLSCompliant -->
<Rule Id="CA1016" Action="None" /> <!-- Mark assemblies with assembly version -->
<Rule Id="CA1017" Action="None" /> <!-- Mark assemblies with ComVisible -->
<Rule Id="CA1018" Action="Warning" /> <!-- Mark attributes with AttributeUsageAttribute -->
<Rule Id="CA1019" Action="None" /> <!-- Define accessors for attribute arguments -->
<Rule Id="CA1021" Action="None" /> <!-- Avoid out parameters -->
<Rule Id="CA1024" Action="None" /> <!-- Use properties where appropriate -->
<Rule Id="CA1027" Action="None" /> <!-- Mark enums with FlagsAttribute -->
<Rule Id="CA1028" Action="None" /> <!-- Enum Storage should be Int32 -->
<Rule Id="CA1030" Action="None" /> <!-- Use events where appropriate -->
<Rule Id="CA1031" Action="None" /> <!-- Do not catch general exception types -->
<Rule Id="CA1032" Action="None" /> <!-- Implement standard exception constructors -->
<Rule Id="CA1033" Action="None" /> <!-- Interface methods should be callable by child types -->
<Rule Id="CA1034" Action="None" /> <!-- Nested types should not be visible -->
<Rule Id="CA1036" Action="None" /> <!-- Override methods on comparable types -->
<Rule Id="CA1040" Action="None" /> <!-- Avoid empty interfaces -->
<Rule Id="CA1041" Action="None" /> <!-- Provide ObsoleteAttribute message -->
<Rule Id="CA1043" Action="None" /> <!-- Use Integral Or String Argument For Indexers -->
<Rule Id="CA1044" Action="None" /> <!-- Properties should not be write only -->
<Rule Id="CA1045" Action="None" /> <!-- Do not pass types by reference -->
<Rule Id="CA1046" Action="None" /> <!-- Do not overload equality operator on reference types -->
<Rule Id="CA1047" Action="Warning" /> <!-- Do not declare protected member in sealed type -->
<Rule Id="CA1050" Action="Warning" /> <!-- Declare types in namespaces -->
<Rule Id="CA1051" Action="None" /> <!-- Do not declare visible instance fields -->
<Rule Id="CA1052" Action="Warning" /> <!-- Static holder types should be Static or NotInheritable -->
<Rule Id="CA1054" Action="None" /> <!-- Uri parameters should not be strings -->
<Rule Id="CA1055" Action="None" /> <!-- Uri return values should not be strings -->
<Rule Id="CA1056" Action="None" /> <!-- Uri properties should not be strings -->
<Rule Id="CA1058" Action="None" /> <!-- Types should not extend certain base types -->
<Rule Id="CA1060" Action="None" /> <!-- Move pinvokes to native methods class -->
<Rule Id="CA1061" Action="None" /> <!-- Do not hide base class methods -->
<Rule Id="CA1062" Action="None" /> <!-- Validate arguments of public methods -->
<Rule Id="CA1063" Action="None" /> <!-- Implement IDisposable Correctly -->
<Rule Id="CA1064" Action="None" /> <!-- Exceptions should be public -->
<Rule Id="CA1065" Action="None" /> <!-- Do not raise exceptions in unexpected locations -->
<Rule Id="CA1066" Action="None" /> <!-- Implement IEquatable when overriding Object.Equals -->
<Rule Id="CA1067" Action="None" /> <!-- Override Object.Equals(object) when implementing IEquatable<T> -->
<Rule Id="CA1068" Action="None" /> <!-- CancellationToken parameters must come last -->
<Rule Id="CA1069" Action="None" /> <!-- Enums values should not be duplicated -->
<Rule Id="CA1070" Action="Info" /> <!-- Do not declare event fields as virtual -->
<Rule Id="CA1200" Action="Info" /> <!-- Avoid using cref tags with a prefix -->
<Rule Id="CA1303" Action="None" /> <!-- Do not pass literals as localized parameters -->
<Rule Id="CA1304" Action="None" /> <!-- Specify CultureInfo -->
<Rule Id="CA1305" Action="None" /> <!-- Specify IFormatProvider -->
<Rule Id="CA1307" Action="None" /> <!-- Specify StringComparison -->
<Rule Id="CA1308" Action="None" /> <!-- Normalize strings to uppercase -->
<Rule Id="CA1309" Action="None" /> <!-- Use ordinal stringcomparison -->
<Rule Id="CA1310" Action="Info" /> <!-- Specify StringComparison for correctness -->
<Rule Id="CA1401" Action="Warning" /> <!-- P/Invokes should not be visible -->
<Rule Id="CA1416" Action="Warning" /> <!-- Validate platform compatibility -->
<Rule Id="CA1417" Action="Warning" /> <!-- Do not use 'OutAttribute' on string parameters for P/Invokes -->
<Rule Id="CA1418" Action="Warning" /> <!-- Use valid platform string -->
<Rule Id="CA1419" Action="Warning" /> <!-- Provide a public parameterless constructor for concrete types derived from 'System.Runtime.InteropServices.SafeHandle' -->
<Rule Id="CA1501" Action="None" /> <!-- Avoid excessive inheritance -->
<Rule Id="CA1502" Action="None" /> <!-- Avoid excessive complexity -->
<Rule Id="CA1505" Action="None" /> <!-- Avoid unmaintainable code -->
<Rule Id="CA1506" Action="None" /> <!-- Avoid excessive class coupling -->
<Rule Id="CA1507" Action="Warning" /> <!-- Use nameof to express symbol names -->
<Rule Id="CA1508" Action="None" /> <!-- Avoid dead conditional code -->
<Rule Id="CA1509" Action="None" /> <!-- Invalid entry in code metrics rule specification file -->
<Rule Id="CA1700" Action="None" /> <!-- Do not name enum values 'Reserved' -->
<Rule Id="CA1707" Action="None" /> <!-- Identifiers should not contain underscores -->
<Rule Id="CA1708" Action="None" /> <!-- Identifiers should differ by more than case -->
<Rule Id="CA1710" Action="None" /> <!-- Identifiers should have correct suffix -->
<Rule Id="CA1711" Action="None" /> <!-- Identifiers should not have incorrect suffix -->
<Rule Id="CA1712" Action="None" /> <!-- Do not prefix enum values with type name -->
<Rule Id="CA1713" Action="None" /> <!-- Events should not have 'Before' or 'After' prefix -->
<Rule Id="CA1715" Action="None" /> <!-- Identifiers should have correct prefix -->
<Rule Id="CA1716" Action="None" /> <!-- Identifiers should not match keywords -->
<Rule Id="CA1720" Action="None" /> <!-- Identifier contains type name -->
<Rule Id="CA1721" Action="None" /> <!-- Property names should not match get methods -->
<Rule Id="CA1724" Action="None" /> <!-- Type names should not match namespaces -->
<Rule Id="CA1725" Action="Info" /> <!-- Parameter names should match base declaration -->
<Rule Id="CA1801" Action="None" /> <!-- Review unused parameters -->
<Rule Id="CA1802" Action="Warning" /> <!-- Use literals where appropriate -->
<Rule Id="CA1805" Action="Warning" /> <!-- Do not initialize unnecessarily -->
<Rule Id="CA1806" Action="None" /> <!-- Do not ignore method results -->
<Rule Id="CA1810" Action="Warning" /> <!-- Initialize reference type static fields inline -->
<Rule Id="CA1812" Action="None" /> <!-- Avoid uninstantiated internal classes -->
<Rule Id="CA1813" Action="None" /> <!-- Avoid unsealed attributes -->
<Rule Id="CA1814" Action="None" /> <!-- Prefer jagged arrays over multidimensional -->
<Rule Id="CA1815" Action="None" /> <!-- Override equals and operator equals on value types -->
<Rule Id="CA1816" Action="None" /> <!-- Dispose methods should call SuppressFinalize -->
<Rule Id="CA1819" Action="None" /> <!-- Properties should not return arrays -->
<Rule Id="CA1820" Action="None" /> <!-- Test for empty strings using string length -->
<Rule Id="CA1821" Action="Warning" /> <!-- Remove empty Finalizers -->
<Rule Id="CA1822" Action="None" /> <!-- Mark members as static -->
<Rule Id="CA1823" Action="Warning" /> <!-- Avoid unused private fields -->
<Rule Id="CA1824" Action="Warning" /> <!-- Mark assemblies with NeutralResourcesLanguageAttribute -->
<Rule Id="CA1825" Action="Warning" /> <!-- Avoid zero-length array allocations. -->
<Rule Id="CA1826" Action="Warning" /> <!-- Do not use Enumerable methods on indexable collections. Instead use the collection directly -->
<Rule Id="CA1827" Action="Warning" /> <!-- Do not use Count() or LongCount() when Any() can be used -->
<Rule Id="CA1828" Action="Warning" /> <!-- Do not use CountAsync() or LongCountAsync() when AnyAsync() can be used -->
<Rule Id="CA1829" Action="Warning" /> <!-- Use Length/Count property instead of Count() when available -->
<Rule Id="CA1830" Action="Warning" /> <!-- Prefer strongly-typed Append and Insert method overloads on StringBuilder. -->
<Rule Id="CA1831" Action="Warning" /> <!-- Use AsSpan or AsMemory instead of Range-based indexers when appropriate -->
<Rule Id="CA1832" Action="Warning" /> <!-- Use AsSpan or AsMemory instead of Range-based indexers when appropriate -->
<Rule Id="CA1833" Action="Warning" /> <!-- Use AsSpan or AsMemory instead of Range-based indexers when appropriate -->
<Rule Id="CA1834" Action="Warning" /> <!-- Consider using 'StringBuilder.Append(char)' when applicable. -->
<Rule Id="CA1835" Action="Warning" /> <!-- Prefer the 'Memory'-based overloads for 'ReadAsync' and 'WriteAsync' -->
<Rule Id="CA1836" Action="Warning" /> <!-- Prefer IsEmpty over Count -->
<Rule Id="CA1837" Action="Warning" /> <!-- Use 'Environment.ProcessId' -->
<Rule Id="CA1838" Action="Warning" /> <!-- Avoid 'StringBuilder' parameters for P/Invokes -->
<Rule Id="CA1839" Action="Warning" /> <!-- Use 'Environment.ProcessPath' -->
<Rule Id="CA1840" Action="Warning" /> <!-- Use 'Environment.CurrentManagedThreadId' -->
<Rule Id="CA1841" Action="Warning" /> <!-- Prefer Dictionary.Contains methods -->
<Rule Id="CA1842" Action="Warning" /> <!-- Do not use 'WhenAll' with a single task -->
<Rule Id="CA1843" Action="Warning" /> <!-- Do not use 'WaitAll' with a single task -->
<Rule Id="CA1844" Action="Warning" /> <!-- Provide memory-based overrides of async methods when subclassing 'Stream' -->
<Rule Id="CA1845" Action="Warning" /> <!-- Use span-based 'string.Concat' -->
<Rule Id="CA1846" Action="Warning" /> <!-- Prefer 'AsSpan' over 'Substring' -->
<Rule Id="CA1847" Action="Warning" /> <!-- Use char literal for a single character lookup -->
<Rule Id="CA2000" Action="None" /> <!-- Dispose objects before losing scope -->
<Rule Id="CA2002" Action="None" /> <!-- Do not lock on objects with weak identity -->
<Rule Id="CA2007" Action="Warning" /> <!-- Consider calling ConfigureAwait on the awaited task -->
<Rule Id="CA2008" Action="Warning" /> <!-- Do not create tasks without passing a TaskScheduler -->
<Rule Id="CA2009" Action="Warning" /> <!-- Do not call ToImmutableCollection on an ImmutableCollection value -->
<Rule Id="CA2011" Action="Warning" /> <!-- Avoid infinite recursion -->
<Rule Id="CA2012" Action="Warning" /> <!-- Use ValueTasks correctly -->
<Rule Id="CA2013" Action="Warning" /> <!-- Do not use ReferenceEquals with value types -->
<Rule Id="CA2014" Action="Warning" /> <!-- Do not use stackalloc in loops. -->
<Rule Id="CA2015" Action="Warning" /> <!-- Do not define finalizers for types derived from MemoryManager<T> -->
<Rule Id="CA2016" Action="Warning" /> <!-- Forward the 'CancellationToken' parameter to methods that take one -->
<Rule Id="CA2100" Action="None" /> <!-- Review SQL queries for security vulnerabilities -->
<Rule Id="CA2101" Action="None" /> <!-- Specify marshaling for P/Invoke string arguments -->
<Rule Id="CA2109" Action="None" /> <!-- Review visible event handlers -->
<Rule Id="CA2119" Action="None" /> <!-- Seal methods that satisfy private interfaces -->
<Rule Id="CA2153" Action="None" /> <!-- Do Not Catch Corrupted State Exceptions -->
<Rule Id="CA2200" Action="Warning" /> <!-- Rethrow to preserve stack details. -->
<Rule Id="CA2201" Action="None" /> <!-- Do not raise reserved exception types -->
<Rule Id="CA2207" Action="Warning" /> <!-- Initialize value type static fields inline -->
<Rule Id="CA2208" Action="Warning" /> <!-- Instantiate argument exceptions correctly -->
<Rule Id="CA2211" Action="None" /> <!-- Non-constant fields should not be visible -->
<Rule Id="CA2213" Action="None" /> <!-- Disposable fields should be disposed -->
<Rule Id="CA2214" Action="None" /> <!-- Do not call overridable methods in constructors -->
<Rule Id="CA2215" Action="None" /> <!-- Dispose methods should call base class dispose -->
<Rule Id="CA2216" Action="None" /> <!-- Disposable types should declare finalizer -->
<Rule Id="CA2217" Action="None" /> <!-- Do not mark enums with FlagsAttribute -->
<Rule Id="CA2218" Action="None" /> <!-- Override GetHashCode on overriding Equals -->
<Rule Id="CA2219" Action="None" /> <!-- Do not raise exceptions in finally clauses -->
<Rule Id="CA2224" Action="None" /> <!-- Override Equals on overloading operator equals -->
<Rule Id="CA2225" Action="None" /> <!-- Operator overloads have named alternates -->
<Rule Id="CA2226" Action="None" /> <!-- Operators should have symmetrical overloads -->
<Rule Id="CA2227" Action="None" /> <!-- Collection properties should be read only -->
<Rule Id="CA2229" Action="Warning" /> <!-- Implement serialization constructors -->
<Rule Id="CA2231" Action="None" /> <!-- Overload operator equals on overriding value type Equals -->
<Rule Id="CA2234" Action="None" /> <!-- Pass system uri objects instead of strings -->
<Rule Id="CA2235" Action="None" /> <!-- Mark all non-serializable fields -->
<Rule Id="CA2237" Action="None" /> <!-- Mark ISerializable types with serializable -->
<Rule Id="CA2241" Action="Warning" /> <!-- Provide correct arguments to formatting methods -->
<Rule Id="CA2242" Action="Warning" /> <!-- Test for NaN correctly -->
<Rule Id="CA2243" Action="Warning" /> <!-- Attribute string literals should parse correctly -->
<Rule Id="CA2244" Action="None" /> <!-- Do not duplicate indexed element initializations -->
<Rule Id="CA2245" Action="Warning" /> <!-- Do not assign a property to itself. -->
<Rule Id="CA2246" Action="None" /> <!-- Assigning symbol and its member in the same statement. -->
<Rule Id="CA2247" Action="Warning" /> <!-- Argument passed to TaskCompletionSource constructor should be TaskCreationOptions enum instead of TaskContinuationOptions enum. -->
<Rule Id="CA2248" Action="Warning" /> <!-- Provide correct 'enum' argument to 'Enum.HasFlag' -->
<Rule Id="CA2249" Action="Warning" /> <!-- Consider using 'string.Contains' instead of 'string.IndexOf' -->
<Rule Id="CA2250" Action="Warning" /> <!-- Use 'ThrowIfCancellationRequested' -->
<Rule Id="CA2251" Action="Warning" /> <!-- Use 'string.Equals' -->
<Rule Id="CA2252" Action="None" /> <!-- This API requires opting into preview features -->
<Rule Id="CA2300" Action="None" /> <!-- Do not use insecure deserializer BinaryFormatter -->
<Rule Id="CA2301" Action="None" /> <!-- Do not call BinaryFormatter.Deserialize without first setting BinaryFormatter.Binder -->
<Rule Id="CA2302" Action="None" /> <!-- Ensure BinaryFormatter.Binder is set before calling BinaryFormatter.Deserialize -->
<Rule Id="CA2305" Action="None" /> <!-- Do not use insecure deserializer LosFormatter -->
<Rule Id="CA2310" Action="None" /> <!-- Do not use insecure deserializer NetDataContractSerializer -->
<Rule Id="CA2311" Action="None" /> <!-- Do not deserialize without first setting NetDataContractSerializer.Binder -->
<Rule Id="CA2312" Action="None" /> <!-- Ensure NetDataContractSerializer.Binder is set before deserializing -->
<Rule Id="CA2315" Action="None" /> <!-- Do not use insecure deserializer ObjectStateFormatter -->
<Rule Id="CA2321" Action="None" /> <!-- Do not deserialize with JavaScriptSerializer using a SimpleTypeResolver -->
<Rule Id="CA2322" Action="None" /> <!-- Ensure JavaScriptSerializer is not initialized with SimpleTypeResolver before deserializing -->
<Rule Id="CA2326" Action="None" /> <!-- Do not use TypeNameHandling values other than None -->
<Rule Id="CA2327" Action="None" /> <!-- Do not use insecure JsonSerializerSettings -->
<Rule Id="CA2328" Action="None" /> <!-- Ensure that JsonSerializerSettings are secure -->
<Rule Id="CA2329" Action="None" /> <!-- Do not deserialize with JsonSerializer using an insecure configuration -->
<Rule Id="CA2330" Action="None" /> <!-- Ensure that JsonSerializer has a secure configuration when deserializing -->
<Rule Id="CA2350" Action="None" /> <!-- Do not use DataTable.ReadXml() with untrusted data -->
<Rule Id="CA2351" Action="None" /> <!-- Do not use DataSet.ReadXml() with untrusted data -->
<Rule Id="CA2352" Action="None" /> <!-- Unsafe DataSet or DataTable in serializable type can be vulnerable to remote code execution attacks -->
<Rule Id="CA2353" Action="None" /> <!-- Unsafe DataSet or DataTable in serializable type -->
<Rule Id="CA2354" Action="None" /> <!-- Unsafe DataSet or DataTable in deserialized object graph can be vulnerable to remote code execution attacks -->
<Rule Id="CA2355" Action="None" /> <!-- Unsafe DataSet or DataTable type found in deserializable object graph -->
<Rule Id="CA2356" Action="None" /> <!-- Unsafe DataSet or DataTable type in web deserializable object graph -->
<Rule Id="CA2361" Action="None" /> <!-- Ensure autogenerated class containing DataSet.ReadXml() is not used with untrusted data -->
<Rule Id="CA2362" Action="None" /> <!-- Unsafe DataSet or DataTable in autogenerated serializable type can be vulnerable to remote code execution attacks -->
<Rule Id="CA3001" Action="None" /> <!-- Review code for SQL injection vulnerabilities -->
<Rule Id="CA3002" Action="None" /> <!-- Review code for XSS vulnerabilities -->
<Rule Id="CA3003" Action="None" /> <!-- Review code for file path injection vulnerabilities -->
<Rule Id="CA3004" Action="None" /> <!-- Review code for information disclosure vulnerabilities -->
<Rule Id="CA3005" Action="None" /> <!-- Review code for LDAP injection vulnerabilities -->
<Rule Id="CA3006" Action="None" /> <!-- Review code for process command injection vulnerabilities -->
<Rule Id="CA3007" Action="None" /> <!-- Review code for open redirect vulnerabilities -->
<Rule Id="CA3008" Action="None" /> <!-- Review code for XPath injection vulnerabilities -->
<Rule Id="CA3009" Action="None" /> <!-- Review code for XML injection vulnerabilities -->
<Rule Id="CA3010" Action="None" /> <!-- Review code for XAML injection vulnerabilities -->
<Rule Id="CA3011" Action="None" /> <!-- Review code for DLL injection vulnerabilities -->
<Rule Id="CA3012" Action="None" /> <!-- Review code for regex injection vulnerabilities -->
<Rule Id="CA3061" Action="Warning" /> <!-- Do Not Add Schema By URL -->
<Rule Id="CA3075" Action="Warning" /> <!-- Insecure DTD processing in XML -->
<Rule Id="CA3076" Action="Warning" /> <!-- Insecure XSLT script processing. -->
<Rule Id="CA3077" Action="Warning" /> <!-- Insecure Processing in API Design, XmlDocument and XmlTextReader -->
<Rule Id="CA3147" Action="Warning" /> <!-- Mark Verb Handlers With Validate Antiforgery Token -->
<Rule Id="CA5350" Action="Warning" /> <!-- Do Not Use Weak Cryptographic Algorithms -->
<Rule Id="CA5351" Action="Warning" /> <!-- Do Not Use Broken Cryptographic Algorithms -->
<Rule Id="CA5358" Action="None" /> <!-- Review cipher mode usage with cryptography experts -->
<Rule Id="CA5359" Action="Warning" /> <!-- Do Not Disable Certificate Validation -->
<Rule Id="CA5360" Action="Warning" /> <!-- Do Not Call Dangerous Methods In Deserialization -->
<Rule Id="CA5361" Action="Warning" /> <!-- Do Not Disable SChannel Use of Strong Crypto -->
<Rule Id="CA5362" Action="None" /> <!-- Potential reference cycle in deserialized object graph -->
<Rule Id="CA5363" Action="Warning" /> <!-- Do Not Disable Request Validation -->
<Rule Id="CA5364" Action="Warning" /> <!-- Do Not Use Deprecated Security Protocols -->
<Rule Id="CA5365" Action="Warning" /> <!-- Do Not Disable HTTP Header Checking -->
<Rule Id="CA5366" Action="None" /> <!-- Use XmlReader For DataSet Read Xml -->
<Rule Id="CA5367" Action="None" /> <!-- Do Not Serialize Types With Pointer Fields -->
<Rule Id="CA5368" Action="Warning" /> <!-- Set ViewStateUserKey For Classes Derived From Page -->
<Rule Id="CA5369" Action="None" /> <!-- Use XmlReader For Deserialize -->
<Rule Id="CA5370" Action="Warning" /> <!-- Use XmlReader For Validating Reader -->
<Rule Id="CA5371" Action="None" /> <!-- Use XmlReader For Schema Read -->
<Rule Id="CA5372" Action="None" /> <!-- Use XmlReader For XPathDocument -->
<Rule Id="CA5373" Action="Warning" /> <!-- Do not use obsolete key derivation function -->
<Rule Id="CA5374" Action="Warning" /> <!-- Do Not Use XslTransform -->
<Rule Id="CA5375" Action="None" /> <!-- Do Not Use Account Shared Access Signature -->
<Rule Id="CA5376" Action="Warning" /> <!-- Use SharedAccessProtocol HttpsOnly -->
<Rule Id="CA5377" Action="Warning" /> <!-- Use Container Level Access Policy -->
<Rule Id="CA5378" Action="Warning" /> <!-- Do not disable ServicePointManagerSecurityProtocols -->
<Rule Id="CA5379" Action="Warning" /> <!-- Do Not Use Weak Key Derivation Function Algorithm -->
<Rule Id="CA5380" Action="Warning" /> <!-- Do Not Add Certificates To Root Store -->
<Rule Id="CA5381" Action="Warning" /> <!-- Ensure Certificates Are Not Added To Root Store -->
<Rule Id="CA5382" Action="None" /> <!-- Use Secure Cookies In ASP.Net Core -->
<Rule Id="CA5383" Action="None" /> <!-- Ensure Use Secure Cookies In ASP.Net Core -->
<Rule Id="CA5384" Action="Warning" /> <!-- Do Not Use Digital Signature Algorithm (DSA) -->
<Rule Id="CA5385" Action="Warning" /> <!-- Use RivestShamirAdleman (RSA) Algorithm With Sufficient Key Size -->
<Rule Id="CA5386" Action="None" /> <!-- Avoid hardcoding SecurityProtocolType value -->
<Rule Id="CA5387" Action="None" /> <!-- Do Not Use Weak Key Derivation Function With Insufficient Iteration Count -->
<Rule Id="CA5388" Action="None" /> <!-- Ensure Sufficient Iteration Count When Using Weak Key Derivation Function -->
<Rule Id="CA5389" Action="None" /> <!-- Do Not Add Archive Item's Path To The Target File System Path -->
<Rule Id="CA5390" Action="None" /> <!-- Do not hard-code encryption key -->
<Rule Id="CA5391" Action="None" /> <!-- Use antiforgery tokens in ASP.NET Core MVC controllers -->
<Rule Id="CA5392" Action="None" /> <!-- Use DefaultDllImportSearchPaths attribute for P/Invokes -->
<Rule Id="CA5393" Action="None" /> <!-- Do not use unsafe DllImportSearchPath value -->
<Rule Id="CA5394" Action="None" /> <!-- Do not use insecure randomness -->
<Rule Id="CA5395" Action="None" /> <!-- Miss HttpVerb attribute for action methods -->
<Rule Id="CA5396" Action="None" /> <!-- Set HttpOnly to true for HttpCookie -->
<Rule Id="CA5397" Action="None" /> <!-- Do not use deprecated SslProtocols values -->
<Rule Id="CA5398" Action="None" /> <!-- Avoid hardcoded SslProtocols values -->
<Rule Id="CA5399" Action="None" /> <!-- HttpClients should enable certificate revocation list checks -->
<Rule Id="CA5400" Action="None" /> <!-- Ensure HttpClient certificate revocation list check is not disabled -->
<Rule Id="CA5401" Action="None" /> <!-- Do not use CreateEncryptor with non-default IV -->
<Rule Id="CA5402" Action="None" /> <!-- Use CreateEncryptor with the default IV -->
<Rule Id="CA5403" Action="None" /> <!-- Do not hard-code certificate -->
</Rules>
<Rules AnalyzerId="StyleCop.Analyzers" RuleNamespace="StyleCop.Analyzers">
<Rule Id="AD0001" Action="None" /> <!-- Analyzer threw an exception -->
<Rule Id="SA0001" Action="None" /> <!-- XML comments -->
<Rule Id="SA1000" Action="Warning" /> <!-- Spacing around keywords -->
<Rule Id="SA1001" Action="Warning" /> <!-- Commas should not be preceded by whitespace -->
<Rule Id="SA1002" Action="None" /> <!-- Semicolons should not be preceded by a space -->
<Rule Id="SA1003" Action="None" /> <!-- Operator should not appear at the end of a line -->
<Rule Id="SA1004" Action="None" /> <!-- Documentation line should begin with a space -->
<Rule Id="SA1005" Action="None" /> <!-- Single line comment should begin with a space -->
<Rule Id="SA1008" Action="None" /> <!-- Opening parenthesis should not be preceded by a space -->
<Rule Id="SA1009" Action="None" /> <!-- Closing parenthesis should not be followed by a space -->
<Rule Id="SA1010" Action="None" /> <!-- Opening square brackets should not be preceded by a space -->
<Rule Id="SA1011" Action="None" /> <!-- Closing square bracket should be followed by a space -->
<Rule Id="SA1012" Action="None" /> <!-- Opening brace should be followed by a space -->
<Rule Id="SA1013" Action="None" /> <!-- Closing brace should be preceded by a space -->
<Rule Id="SA1014" Action="Warning" /> <!-- Opening generic brackets should not be preceded by a space -->
<Rule Id="SA1015" Action="None" /> <!-- Closing generic bracket should not be followed by a space -->
<Rule Id="SA1018" Action="Warning" /> <!-- Nullable type symbol should not be preceded by a space -->
<Rule Id="SA1020" Action="Warning" /> <!-- Increment symbol should not be preceded by a space -->
<Rule Id="SA1021" Action="None" /> <!-- Negative sign should be preceded by a space -->
<Rule Id="SA1023" Action="None" /> <!-- Dereference symbol '*' should not be preceded by a space." -->
<Rule Id="SA1024" Action="None" /> <!-- Colon should be followed by a space -->
<Rule Id="SA1025" Action="None" /> <!-- Code should not contain multiple whitespace characters in a row -->
<Rule Id="SA1026" Action="Warning" /> <!-- Keyword followed by span or blank line -->
<Rule Id="SA1027" Action="Warning" /> <!-- Tabs and spaces should be used correctly -->
<Rule Id="SA1028" Action="Warning" /> <!-- Code should not contain trailing whitespace -->
<Rule Id="SA1100" Action="None" /> <!-- Do not prefix calls with base unless local implementation exists -->
<Rule Id="SA1101" Action="None" /> <!-- Prefix local calls with this -->
<Rule Id="SA1102" Action="Warning" /> <!-- Query clause should follow previous clause -->
<Rule Id="SA1105" Action="Warning" /> <!-- Query clauses spanning multiple lines should begin on own line -->
<Rule Id="SA1106" Action="None" /> <!-- Code should not contain empty statements -->
<Rule Id="SA1107" Action="None" /> <!-- Code should not contain multiple statements on one line -->
<Rule Id="SA1108" Action="None" /> <!-- Block statements should not contain embedded comments -->
<Rule Id="SA1110" Action="None" /> <!-- Opening parenthesis or bracket should be on declaration line -->
<Rule Id="SA1111" Action="None" /> <!-- Closing parenthesis should be on line of last parameter -->
<Rule Id="SA1113" Action="Warning" /> <!-- Comma should be on the same line as previous parameter -->
<Rule Id="SA1114" Action="None" /> <!-- Parameter list should follow declaration -->
<Rule Id="SA1115" Action="Warning" /> <!-- Parameter should begin on the line after the previous parameter -->
<Rule Id="SA1116" Action="None" /> <!-- Split parameters should start on line after declaration -->
<Rule Id="SA1117" Action="None" /> <!-- Parameters should be on same line or separate lines -->
<Rule Id="SA1118" Action="None" /> <!-- Parameter should not span multiple lines -->
<Rule Id="SA1119" Action="None" /> <!-- Statement should not use unnecessary parenthesis -->
<Rule Id="SA1120" Action="None" /> <!-- Comments should contain text -->
<Rule Id="SA1121" Action="Warning" /> <!-- Use built-in type alias -->
<Rule Id="SA1122" Action="None" /> <!-- Use string.Empty for empty strings -->
<Rule Id="SA1123" Action="None" /> <!-- Region should not be located within a code element -->
<Rule Id="SA1124" Action="None" /> <!-- Do not use regions -->
<Rule Id="SA1125" Action="None" /> <!-- Use shorthand for nullable types -->
<Rule Id="SA1127" Action="None" /> <!-- Generic type constraints should be on their own line -->
<Rule Id="SA1128" Action="None" /> <!-- Put constructor initializers on their own line -->
<Rule Id="SA1129" Action="Warning" /> <!-- Do not use default value type constructor -->
<Rule Id="SA1130" Action="None" /> <!-- Use lambda syntax -->
<Rule Id="SA1131" Action="None" /> <!-- Constant values should appear on the right-hand side of comparisons -->
<Rule Id="SA1132" Action="None" /> <!-- Do not combine fields -->
<Rule Id="SA1133" Action="None" /> <!-- Do not combine attributes -->
<Rule Id="SA1134" Action="None" /> <!-- Each attribute should be placed on its own line of code -->
<Rule Id="SA1135" Action="None" /> <!-- Using directive should be qualified -->
<Rule Id="SA1136" Action="None" /> <!-- Enum values should be on separate lines -->
<Rule Id="SA1137" Action="None" /> <!-- Elements should have the same indentation -->
<Rule Id="SA1139" Action="None" /> <!-- Use literal suffix notation instead of casting -->
<Rule Id="SA1141" Action="Warning" /> <!-- Use tuple syntax -->
<Rule Id="SA1142" Action="Warning" /> <!-- Refer to tuple elements by name -->
<Rule Id="SA1200" Action="None" /> <!-- Using directive should appear within a namespace declaration -->
<Rule Id="SA1201" Action="None" /> <!-- Elements should appear in the correct order -->
<Rule Id="SA1202" Action="None" /> <!-- Elements should be ordered by access -->
<Rule Id="SA1203" Action="None" /> <!-- Constants should appear before fields -->
<Rule Id="SA1204" Action="None" /> <!-- Static elements should appear before instance elements -->
<Rule Id="SA1205" Action="Warning" /> <!-- Partial elements should declare an access modifier -->
<Rule Id="SA1206" Action="Warning" /> <!-- Keyword ordering -->
<Rule Id="SA1208" Action="None" /> <!-- Using directive ordering -->
<Rule Id="SA1209" Action="None" /> <!-- Using alias directives should be placed after all using namespace directives -->
<Rule Id="SA1210" Action="None" /> <!-- Using directives should be ordered alphabetically by the namespaces -->
<Rule Id="SA1211" Action="None" /> <!-- Using alias directive ordering -->
<Rule Id="SA1212" Action="Warning" /> <!-- A get accessor appears after a set accessor within a property or indexer -->
<Rule Id="SA1214" Action="None" /> <!-- Readonly fields should appear before non-readonly fields -->
<Rule Id="SA1216" Action="None" /> <!-- Using static directives should be placed at the correct location -->
<Rule Id="SA1300" Action="None" /> <!-- Element should begin with an uppercase letter -->
<Rule Id="SA1302" Action="Warning" /> <!-- Interface names should begin with I -->
<Rule Id="SA1303" Action="None" /> <!-- Const field names should begin with upper-case letter -->
<Rule Id="SA1304" Action="None" /> <!-- Non-private readonly fields should begin with upper-case letter -->
<Rule Id="SA1306" Action="None" /> <!-- Field should begin with lower-case letter -->
<Rule Id="SA1307" Action="None" /> <!-- Field should begin with upper-case letter -->
<Rule Id="SA1308" Action="None" /> <!-- Field should not begin with the prefix 's_' -->
<Rule Id="SA1309" Action="None" /> <!-- Field names should not begin with underscore -->
<Rule Id="SA1310" Action="None" /> <!-- Field should not contain an underscore -->
<Rule Id="SA1311" Action="None" /> <!-- Static readonly fields should begin with upper-case letter -->
<Rule Id="SA1312" Action="None" /> <!-- Variable should begin with lower-case letter -->
<Rule Id="SA1313" Action="None" /> <!-- Parameter should begin with lower-case letter -->
<Rule Id="SA1314" Action="None" /> <!-- Type parameter names should begin with T -->
<Rule Id="SA1316" Action="None" /> <!-- Tuple element names should use correct casing -->
<Rule Id="SA1400" Action="Warning" /> <!-- Member should declare an access modifer -->
<Rule Id="SA1401" Action="None" /> <!-- Fields should be private -->
<Rule Id="SA1402" Action="None" /> <!-- File may only contain a single type -->
<Rule Id="SA1403" Action="None" /> <!-- File may only contain a single namespace -->
<Rule Id="SA1404" Action="Warning" /> <!-- Code analysis suppression should have justification -->
<Rule Id="SA1405" Action="None" /> <!-- Debug.Assert should provide message text -->
<Rule Id="SA1407" Action="None" /> <!-- Arithmetic expressions should declare precedence -->
<Rule Id="SA1408" Action="None" /> <!-- Conditional expressions should declare precedence -->
<Rule Id="SA1410" Action="Warning" /> <!-- Remove delegate parens when possible -->
<Rule Id="SA1411" Action="Warning" /> <!-- Attribute constructor shouldn't use unnecessary parenthesis -->
<Rule Id="SA1413" Action="None" /> <!-- Use trailing comma in multi-line initializers -->
<Rule Id="SA1414" Action="None" /> <!-- Tuple types in signatures should have element names -->
<Rule Id="SA1500" Action="None" /> <!-- Braces for multi-line statements should not share line -->
<Rule Id="SA1501" Action="None" /> <!-- Statement should not be on a single line -->
<Rule Id="SA1502" Action="None" /> <!-- Element should not be on a single line -->
<Rule Id="SA1503" Action="None" /> <!-- Braces should not be omitted -->
<Rule Id="SA1504" Action="None" /> <!-- All accessors should be single-line or multi-line -->
<Rule Id="SA1505" Action="None" /> <!-- An opening brace should not be followed by a blank line -->
<Rule Id="SA1506" Action="None" /> <!-- Element documentation headers should not be followed by blank line -->
<Rule Id="SA1507" Action="None" /> <!-- Code should not contain multiple blank lines in a row -->
<Rule Id="SA1508" Action="None" /> <!-- A closing brace should not be preceded by a blank line -->
<Rule Id="SA1509" Action="None" /> <!-- Opening braces should not be preceded by blank line -->
<Rule Id="SA1510" Action="None" /> <!-- 'else' statement should not be preceded by a blank line -->
<Rule Id="SA1512" Action="None" /> <!-- Single-line comments should not be followed by blank line -->
<Rule Id="SA1513" Action="None" /> <!-- Closing brace should be followed by blank line -->
<Rule Id="SA1514" Action="None" /> <!-- Element documentation header should be preceded by blank line -->
<Rule Id="SA1515" Action="None" /> <!-- Single-line comment should be preceded by blank line -->
<Rule Id="SA1516" Action="None" /> <!-- Elements should be separated by blank line -->
<Rule Id="SA1517" Action="Warning" /> <!-- Code should not contain blank lines at start of file -->
<Rule Id="SA1518" Action="Warning" /> <!-- Code should not contain blank lines at the end of the file -->
<Rule Id="SA1519" Action="None" /> <!-- Braces should not be omitted from multi-line child statement -->
<Rule Id="SA1520" Action="None" /> <!-- Use braces consistently -->
<Rule Id="SA1600" Action="None" /> <!-- Elements should be documented -->
<Rule Id="SA1601" Action="None" /> <!-- Partial elements should be documented -->
<Rule Id="SA1602" Action="None" /> <!-- Enumeration items should be documented -->
<Rule Id="SA1604" Action="None" /> <!-- Element documentation should have summary -->
<Rule Id="SA1605" Action="None" /> <!-- Partial element documentation should have summary -->
<Rule Id="SA1606" Action="None" /> <!-- Element documentation should have summary text -->
<Rule Id="SA1608" Action="None" /> <!-- Element documentation should not have default summary -->
<Rule Id="SA1610" Action="None" /> <!-- Property documentation should have value text -->
<Rule Id="SA1611" Action="None" /> <!-- The documentation for parameter 'message' is missing -->
<Rule Id="SA1612" Action="None" /> <!-- The parameter documentation is at incorrect position -->
<Rule Id="SA1614" Action="None" /> <!-- Element parameter documentation should have text -->
<Rule Id="SA1615" Action="None" /> <!-- Element return value should be documented -->
<Rule Id="SA1616" Action="None" /> <!-- Element return value documentation should have text -->
<Rule Id="SA1618" Action="None" /> <!-- The documentation for type parameter is missing -->
<Rule Id="SA1619" Action="None" /> <!-- The documentation for type parameter is missing -->
<Rule Id="SA1622" Action="None" /> <!-- Generic type parameter documentation should have text -->
<Rule Id="SA1623" Action="None" /> <!-- Property documentation text -->
<Rule Id="SA1624" Action="None" /> <!-- Because the property only contains a visible get accessor, the documentation summary text should begin with 'Gets' -->
<Rule Id="SA1625" Action="None" /> <!-- Element documentation should not be copied and pasted -->
<Rule Id="SA1626" Action="None" /> <!-- Single-line comments should not use documentation style slashes -->
<Rule Id="SA1627" Action="None" /> <!-- The documentation text within the \'exception\' tag should not be empty -->
<Rule Id="SA1629" Action="None" /> <!-- Documentation text should end with a period -->
<Rule Id="SA1633" Action="None" /> <!-- File should have header -->
<Rule Id="SA1642" Action="None" /> <!-- Constructor summary documentation should begin with standard text -->
<Rule Id="SA1643" Action="None" /> <!-- Destructor summary documentation should begin with standard text -->
<Rule Id="SA1649" Action="None" /> <!-- File name should match first type name -->
</Rules>
<Rules AnalyzerId="Microsoft.CodeAnalysis.CSharp.CodeStyle" RuleNamespace="Microsoft.CodeQuality.Analyzers">
<Rule Id="IDE0001" Action="Hidden" /> <!-- SimplifyNames -->
<Rule Id="IDE0002" Action="Hidden" /> <!-- SimplifyMemberAccess -->
<Rule Id="IDE0003" Action="Hidden" /> <!-- RemoveQualification -->
<Rule Id="IDE0004" Action="Hidden" /> <!-- RemoveUnnecessaryCast -->
<Rule Id="IDE0005" Action="Hidden" /> <!-- RemoveUnnecessaryImports -->
<Rule Id="IDE0006" Action="Hidden" /> <!-- IntellisenseBuildFailed -->
<Rule Id="IDE0007" Action="Hidden" /> <!-- UseImplicitType -->
<Rule Id="IDE0008" Action="Hidden" /> <!-- UseExplicitType -->
<Rule Id="IDE0009" Action="Hidden" /> <!-- AddQualification -->
<Rule Id="IDE0010" Action="Hidden" /> <!-- PopulateSwitchStatement -->
<Rule Id="IDE0011" Action="Hidden" /> <!-- AddBraces -->
<Rule Id="IDE0016" Action="Hidden" /> <!-- UseThrowExpression -->
<Rule Id="IDE0017" Action="Hidden" /> <!-- UseObjectInitializer -->
<Rule Id="IDE0018" Action="Hidden" /> <!-- InlineDeclaration -->
<Rule Id="IDE0019" Action="Hidden" /> <!-- InlineAsTypeCheck -->
<Rule Id="IDE0020" Action="Hidden" /> <!-- InlineIsTypeCheck -->
<Rule Id="IDE0021" Action="Hidden" /> <!-- UseExpressionBodyForConstructors -->
<Rule Id="IDE0022" Action="Hidden" /> <!-- UseExpressionBodyForMethods -->
<Rule Id="IDE0023" Action="Hidden" /> <!-- UseExpressionBodyForConversionOperators -->
<Rule Id="IDE0024" Action="Hidden" /> <!-- UseExpressionBodyForOperators -->
<Rule Id="IDE0025" Action="Hidden" /> <!-- UseExpressionBodyForProperties -->
<Rule Id="IDE0026" Action="Hidden" /> <!-- UseExpressionBodyForIndexers -->
<Rule Id="IDE0027" Action="Hidden" /> <!-- UseExpressionBodyForAccessors -->
<Rule Id="IDE0028" Action="Hidden" /> <!-- UseCollectionInitializer -->
<Rule Id="IDE0029" Action="Hidden" /> <!-- UseCoalesceExpression -->
<Rule Id="IDE0030" Action="Hidden" /> <!-- UseCoalesceExpressionForNullable -->
<Rule Id="IDE0031" Action="Hidden" /> <!-- UseNullPropagation -->
<Rule Id="IDE0032" Action="Hidden" /> <!-- UseAutoProperty -->
<Rule Id="IDE0033" Action="Hidden" /> <!-- UseExplicitTupleName -->
<Rule Id="IDE0034" Action="Hidden" /> <!-- UseDefaultLiteral -->
<Rule Id="IDE0035" Action="Hidden" /> <!-- RemoveUnreachableCode -->
<Rule Id="IDE0036" Action="Hidden" /> <!-- OrderModifiers -->
<Rule Id="IDE0037" Action="Hidden" /> <!-- UseInferredMemberName -->
<Rule Id="IDE0038" Action="Hidden" /> <!-- InlineIsTypeWithoutNameCheck -->
<Rule Id="IDE0039" Action="Hidden" /> <!-- UseLocalFunction -->
<Rule Id="IDE0040" Action="Hidden" /> <!-- AddAccessibilityModifiers -->
<Rule Id="IDE0041" Action="Warning" /> <!-- UseIsNullCheck -->
<Rule Id="IDE0042" Action="Hidden" /> <!-- UseDeconstruction -->
<Rule Id="IDE0043" Action="Warning" /> <!-- ValidateFormatString -->
<Rule Id="IDE0044" Action="Hidden" /> <!-- MakeFieldReadonly -->
<Rule Id="IDE0045" Action="Hidden" /> <!-- UseConditionalExpressionForAssignment -->
<Rule Id="IDE0046" Action="Hidden" /> <!-- UseConditionalExpressionForReturn -->
<Rule Id="IDE0047" Action="Hidden" /> <!-- RemoveUnnecessaryParentheses -->
<Rule Id="IDE0048" Action="Hidden" /> <!-- AddRequiredParentheses -->
<Rule Id="IDE0049" Action="Hidden" /> <!-- PreferBuiltInOrFrameworkType -->
<Rule Id="IDE0050" Action="Hidden" /> <!-- ConvertAnonymousTypeToTuple -->
<Rule Id="IDE0051" Action="Hidden" /> <!-- RemoveUnusedMembers -->
<Rule Id="IDE0052" Action="Hidden" /> <!-- RemoveUnreadMembers -->
<Rule Id="IDE0053" Action="Hidden" /> <!-- UseExpressionBodyForLambdaExpressions -->
<Rule Id="IDE0054" Action="Hidden" /> <!-- UseCompoundAssignment -->
<Rule Id="IDE0055" Action="Hidden" /> <!-- Formatting -->
<Rule Id="IDE0056" Action="Hidden" /> <!-- UseIndexOperator -->
<Rule Id="IDE0057" Action="Hidden" /> <!-- UseRangeOperator -->
<Rule Id="IDE0058" Action="Hidden" /> <!-- ExpressionValueIsUnused -->
<Rule Id="IDE0059" Action="Hidden" /> <!-- ValueAssignedIsUnused -->
<Rule Id="IDE0060" Action="Hidden" /> <!-- UnusedParameter -->
<Rule Id="IDE0061" Action="Hidden" /> <!-- UseExpressionBodyForLocalFunctions -->
<Rule Id="IDE0062" Action="Warning" /> <!-- MakeLocalFunctionStatic -->
<Rule Id="IDE0063" Action="Hidden" /> <!-- UseSimpleUsingStatement -->
<Rule Id="IDE0064" Action="Hidden" /> <!-- MakeStructFieldsWritable -->
<Rule Id="IDE0065" Action="Hidden" /> <!-- MoveMisplacedUsingDirectives -->
<Rule Id="IDE0066" Action="Hidden" /> <!-- ConvertSwitchStatementToExpression -->
<Rule Id="IDE0070" Action="Hidden" /> <!-- UseSystemHashCode -->
<Rule Id="IDE0071" Action="Hidden" /> <!-- SimplifyInterpolation -->
<Rule Id="IDE0072" Action="Hidden" /> <!-- PopulateSwitchExpression -->
<Rule Id="IDE0073" Action="Warning" /> <!-- FileHeaderMismatch -->
<Rule Id="IDE0074" Action="Hidden" /> <!-- UseCoalesceCompoundAssignment -->
<Rule Id="IDE0075" Action="Hidden" /> <!-- SimplifyConditionalExpression -->
<Rule Id="IDE0076" Action="Hidden" /> <!-- InvalidSuppressMessageAttribute -->
<Rule Id="IDE0077" Action="Hidden" /> <!-- LegacyFormatSuppressMessageAttribute -->
<Rule Id="IDE0078" Action="Hidden" /> <!-- UsePatternCombinators -->
<Rule Id="IDE0079" Action="Hidden" /> <!-- RemoveUnnecessarySuppression -->
<Rule Id="IDE0080" Action="Hidden" /> <!-- RemoveConfusingSuppressionForIsExpression -->
<Rule Id="IDE0081" Action="Hidden" /> <!-- RemoveUnnecessaryByVal -->
<Rule Id="IDE0082" Action="Warning" /> <!-- ConvertTypeOfToNameOf -->
<Rule Id="IDE0083" Action="Hidden" /> <!-- UseNotPattern -->
<Rule Id="IDE0084" Action="Hidden" /> <!-- UseIsNotExpression -->
<Rule Id="IDE0090" Action="Hidden" /> <!-- UseNew -->
<Rule Id="IDE0100" Action="Hidden" /> <!-- RemoveRedundantEquality -->
<Rule Id="IDE0110" Action="Hidden" /> <!-- RemoveUnnecessaryDiscard -->
<Rule Id="IDE0120" Action="Hidden" /> <!-- SimplifyLINQExpression -->
<Rule Id="IDE0130" Action="Hidden" /> <!-- NamespaceDoesNotMatchFolderStructure -->
<Rule Id="IDE0140" Action="Hidden" /> <!-- SimplifyObjectCreationDiagnosticId -->
<Rule Id="IDE0150" Action="Hidden" /> <!-- UseNullCheckOverTypeCheckDiagnosticId -->
<Rule Id="IDE1001" Action="Hidden" /> <!-- AnalyzerChanged -->
<Rule Id="IDE1002" Action="Hidden" /> <!-- AnalyzerDependencyConflict -->
<Rule Id="IDE1003" Action="Hidden" /> <!-- MissingAnalyzerReference -->
<Rule Id="IDE1004" Action="Hidden" /> <!-- ErrorReadingRuleset -->
<Rule Id="IDE1005" Action="Hidden" /> <!-- InvokeDelegateWithConditionalAccess -->
<Rule Id="IDE1006" Action="Hidden" /> <!-- NamingRule -->
<Rule Id="IDE1007" Action="Hidden" /> <!-- UnboundIdentifier -->
<Rule Id="IDE1008" Action="Hidden" /> <!-- UnboundConstructor -->
<Rule Id="IDE2000" Action="Hidden" /> <!-- MultipleBlankLines -->
<Rule Id="IDE2001" Action="Hidden" /> <!-- EmbeddedStatementsMustBeOnTheirOwnLine -->
<Rule Id="IDE2002" Action="Hidden" /> <!-- ConsecutiveBracesMustNotHaveBlankLinesBetweenThem -->
<Rule Id="IDE2003" Action="Hidden" /> <!-- ConsecutiveStatementPlacement -->
<Rule Id="IDE2004" Action="Hidden" /> <!-- BlankLineNotAllowedAfterConstructorInitializerColon -->
</Rules>
</RuleSet>

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,572 +0,0 @@
<RuleSet Name="Microsoft.Analyzers.ManagedCodeAnalysis" Description="Microsoft.Analyzers.ManagedCodeAnalysis" ToolsVersion="14.0">
<Rules AnalyzerId="Microsoft.DotNet.CodeAnalysis" RuleNamespace="Microsoft.DotNet.CodeAnalysis.Analyzers">
<Rule Id="BCL0001" Action="None" /> <!-- Ensure minimum API surface is respected -->
<Rule Id="BCL0010" Action="None" /> <!-- AppContext default value expected to be true -->
<Rule Id="BCL0011" Action="None" /> <!-- AppContext default value defined in if statement with incorrect pattern -->
<Rule Id="BCL0012" Action="None" /> <!-- AppContext default value defined in if statement at root of switch case -->
<Rule Id="BCL0015" Action="None" /> <!-- Invalid P/Invoke call -->
<Rule Id="BCL0020" Action="None" /> <!-- Invalid SR.Format call -->
</Rules>
<Rules AnalyzerId="Microsoft.CodeAnalysis.NetAnalyzers" RuleNamespace="Microsoft.CodeAnalysis.NetAnalyzers">
<Rule Id="CA1000" Action="None" /> <!-- Do not declare static members on generic types -->
<Rule Id="CA1001" Action="None" /> <!-- Types that own disposable fields should be disposable -->
<Rule Id="CA1002" Action="None" /> <!-- Do not expose generic lists -->
<Rule Id="CA1003" Action="None" /> <!-- Use generic event handler instances -->
<Rule Id="CA1005" Action="None" /> <!-- Avoid excessive parameters on generic types -->
<Rule Id="CA1008" Action="None" /> <!-- Enums should have zero value -->
<Rule Id="CA1010" Action="None" /> <!-- Generic interface should also be implemented -->
<Rule Id="CA1012" Action="None" /> <!-- Abstract types should not have constructors -->
<Rule Id="CA1014" Action="None" /> <!-- Mark assemblies with CLSCompliant -->
<Rule Id="CA1016" Action="None" /> <!-- Mark assemblies with assembly version -->
<Rule Id="CA1017" Action="None" /> <!-- Mark assemblies with ComVisible -->
<Rule Id="CA1018" Action="None" /> <!-- Mark attributes with AttributeUsageAttribute -->
<Rule Id="CA1019" Action="None" /> <!-- Define accessors for attribute arguments -->
<Rule Id="CA1021" Action="None" /> <!-- Avoid out parameters -->
<Rule Id="CA1024" Action="None" /> <!-- Use properties where appropriate -->
<Rule Id="CA1027" Action="None" /> <!-- Mark enums with FlagsAttribute -->
<Rule Id="CA1028" Action="None" /> <!-- Enum Storage should be Int32 -->
<Rule Id="CA1030" Action="None" /> <!-- Use events where appropriate -->
<Rule Id="CA1031" Action="None" /> <!-- Do not catch general exception types -->
<Rule Id="CA1032" Action="None" /> <!-- Implement standard exception constructors -->
<Rule Id="CA1033" Action="None" /> <!-- Interface methods should be callable by child types -->
<Rule Id="CA1034" Action="None" /> <!-- Nested types should not be visible -->
<Rule Id="CA1036" Action="None" /> <!-- Override methods on comparable types -->
<Rule Id="CA1040" Action="None" /> <!-- Avoid empty interfaces -->
<Rule Id="CA1041" Action="None" /> <!-- Provide ObsoleteAttribute message -->
<Rule Id="CA1043" Action="None" /> <!-- Use Integral Or String Argument For Indexers -->
<Rule Id="CA1044" Action="None" /> <!-- Properties should not be write only -->
<Rule Id="CA1045" Action="None" /> <!-- Do not pass types by reference -->
<Rule Id="CA1046" Action="None" /> <!-- Do not overload equality operator on reference types -->
<Rule Id="CA1047" Action="None" /> <!-- Do not declare protected member in sealed type -->
<Rule Id="CA1050" Action="None" /> <!-- Declare types in namespaces -->
<Rule Id="CA1051" Action="None" /> <!-- Do not declare visible instance fields -->
<Rule Id="CA1052" Action="None" /> <!-- Static holder types should be Static or NotInheritable -->
<Rule Id="CA1054" Action="None" /> <!-- Uri parameters should not be strings -->
<Rule Id="CA1055" Action="None" /> <!-- Uri return values should not be strings -->
<Rule Id="CA1056" Action="None" /> <!-- Uri properties should not be strings -->
<Rule Id="CA1058" Action="None" /> <!-- Types should not extend certain base types -->
<Rule Id="CA1060" Action="None" /> <!-- Move pinvokes to native methods class -->
<Rule Id="CA1061" Action="None" /> <!-- Do not hide base class methods -->
<Rule Id="CA1062" Action="None" /> <!-- Validate arguments of public methods -->
<Rule Id="CA1063" Action="None" /> <!-- Implement IDisposable Correctly -->
<Rule Id="CA1064" Action="None" /> <!-- Exceptions should be public -->
<Rule Id="CA1065" Action="None" /> <!-- Do not raise exceptions in unexpected locations -->
<Rule Id="CA1066" Action="None" /> <!-- Implement IEquatable when overriding Object.Equals -->
<Rule Id="CA1067" Action="None" /> <!-- Override Object.Equals(object) when implementing IEquatable<T> -->
<Rule Id="CA1068" Action="None" /> <!-- CancellationToken parameters must come last -->
<Rule Id="CA1069" Action="None" /> <!-- Enums values should not be duplicated -->
<Rule Id="CA1070" Action="None" /> <!-- Do not declare event fields as virtual -->
<Rule Id="CA1200" Action="None" /> <!-- Avoid using cref tags with a prefix -->
<Rule Id="CA1303" Action="None" /> <!-- Do not pass literals as localized parameters -->
<Rule Id="CA1304" Action="None" /> <!-- Specify CultureInfo -->
<Rule Id="CA1305" Action="None" /> <!-- Specify IFormatProvider -->
<Rule Id="CA1307" Action="None" /> <!-- Specify StringComparison -->
<Rule Id="CA1308" Action="None" /> <!-- Normalize strings to uppercase -->
<Rule Id="CA1309" Action="None" /> <!-- Use ordinal stringcomparison -->
<Rule Id="CA1310" Action="None" /> <!-- Specify StringComparison for correctness -->
<Rule Id="CA1401" Action="None" /> <!-- P/Invokes should not be visible -->
<Rule Id="CA1416" Action="None" /> <!-- Validate platform compatibility -->
<Rule Id="CA1417" Action="None" /> <!-- Do not use 'OutAttribute' on string parameters for P/Invokes -->
<Rule Id="CA1418" Action="None" /> <!-- Use valid platform string -->
<Rule Id="CA1419" Action="None" /> <!-- Provide a public parameterless constructor for concrete types derived from 'System.Runtime.InteropServices.SafeHandle' -->
<Rule Id="CA1501" Action="None" /> <!-- Avoid excessive inheritance -->
<Rule Id="CA1502" Action="None" /> <!-- Avoid excessive complexity -->
<Rule Id="CA1505" Action="None" /> <!-- Avoid unmaintainable code -->
<Rule Id="CA1506" Action="None" /> <!-- Avoid excessive class coupling -->
<Rule Id="CA1507" Action="None" /> <!-- Use nameof to express symbol names -->
<Rule Id="CA1508" Action="None" /> <!-- Avoid dead conditional code -->
<Rule Id="CA1509" Action="None" /> <!-- Invalid entry in code metrics rule specification file -->
<Rule Id="CA1700" Action="None" /> <!-- Do not name enum values 'Reserved' -->
<Rule Id="CA1707" Action="None" /> <!-- Identifiers should not contain underscores -->
<Rule Id="CA1708" Action="None" /> <!-- Identifiers should differ by more than case -->
<Rule Id="CA1710" Action="None" /> <!-- Identifiers should have correct suffix -->
<Rule Id="CA1711" Action="None" /> <!-- Identifiers should not have incorrect suffix -->
<Rule Id="CA1712" Action="None" /> <!-- Do not prefix enum values with type name -->
<Rule Id="CA1713" Action="None" /> <!-- Events should not have 'Before' or 'After' prefix -->
<Rule Id="CA1715" Action="None" /> <!-- Identifiers should have correct prefix -->
<Rule Id="CA1716" Action="None" /> <!-- Identifiers should not match keywords -->
<Rule Id="CA1720" Action="None" /> <!-- Identifier contains type name -->
<Rule Id="CA1721" Action="None" /> <!-- Property names should not match get methods -->
<Rule Id="CA1724" Action="None" /> <!-- Type names should not match namespaces -->
<Rule Id="CA1725" Action="None" /> <!-- Parameter names should match base declaration -->
<Rule Id="CA1801" Action="None" /> <!-- Review unused parameters -->
<Rule Id="CA1802" Action="None" /> <!-- Use literals where appropriate -->
<Rule Id="CA1805" Action="None" /> <!-- Do not initialize unnecessarily -->
<Rule Id="CA1806" Action="None" /> <!-- Do not ignore method results -->
<Rule Id="CA1810" Action="None" /> <!-- Initialize reference type static fields inline -->
<Rule Id="CA1812" Action="None" /> <!-- Avoid uninstantiated internal classes -->
<Rule Id="CA1813" Action="None" /> <!-- Avoid unsealed attributes -->
<Rule Id="CA1814" Action="None" /> <!-- Prefer jagged arrays over multidimensional -->
<Rule Id="CA1815" Action="None" /> <!-- Override equals and operator equals on value types -->
<Rule Id="CA1816" Action="None" /> <!-- Dispose methods should call SuppressFinalize -->
<Rule Id="CA1819" Action="None" /> <!-- Properties should not return arrays -->
<Rule Id="CA1820" Action="None" /> <!-- Test for empty strings using string length -->
<Rule Id="CA1821" Action="None" /> <!-- Remove empty Finalizers -->
<Rule Id="CA1822" Action="None" /> <!-- Mark members as static -->
<Rule Id="CA1823" Action="None" /> <!-- Avoid unused private fields -->
<Rule Id="CA1824" Action="None" /> <!-- Mark assemblies with NeutralResourcesLanguageAttribute -->
<Rule Id="CA1825" Action="None" /> <!-- Avoid zero-length array allocations. -->
<Rule Id="CA1826" Action="None" /> <!-- Do not use Enumerable methods on indexable collections. Instead use the collection directly -->
<Rule Id="CA1827" Action="None" /> <!-- Do not use Count() or LongCount() when Any() can be used -->
<Rule Id="CA1828" Action="None" /> <!-- Do not use CountAsync() or LongCountAsync() when AnyAsync() can be used -->
<Rule Id="CA1829" Action="None" /> <!-- Use Length/Count property instead of Count() when available -->
<Rule Id="CA1830" Action="None" /> <!-- Prefer strongly-typed Append and Insert method overloads on StringBuilder. -->
<Rule Id="CA1831" Action="None" /> <!-- Use AsSpan or AsMemory instead of Range-based indexers when appropriate -->
<Rule Id="CA1832" Action="None" /> <!-- Use AsSpan or AsMemory instead of Range-based indexers when appropriate -->
<Rule Id="CA1833" Action="None" /> <!-- Use AsSpan or AsMemory instead of Range-based indexers when appropriate -->
<Rule Id="CA1834" Action="None" /> <!-- Consider using 'StringBuilder.Append(char)' when applicable. -->
<Rule Id="CA1835" Action="None" /> <!-- Prefer the 'Memory'-based overloads for 'ReadAsync' and 'WriteAsync' -->
<Rule Id="CA1836" Action="None" /> <!-- Prefer IsEmpty over Count -->
<Rule Id="CA1837" Action="None" /> <!-- Use 'Environment.ProcessId' -->
<Rule Id="CA1838" Action="None" /> <!-- Avoid 'StringBuilder' parameters for P/Invokes -->
<Rule Id="CA1839" Action="None" /> <!-- Use 'Environment.ProcessPath' -->
<Rule Id="CA1840" Action="None" /> <!-- Use 'Environment.CurrentManagedThreadId' -->
<Rule Id="CA1841" Action="None" /> <!-- Prefer Dictionary.Contains methods -->
<Rule Id="CA1842" Action="None" /> <!-- Do not use 'WhenAll' with a single task -->
<Rule Id="CA1843" Action="None" /> <!-- Do not use 'WaitAll' with a single task -->
<Rule Id="CA1844" Action="None" /> <!-- Provide memory-based overrides of async methods when subclassing 'Stream' -->
<Rule Id="CA1845" Action="None" /> <!-- Use span-based 'string.Concat' -->
<Rule Id="CA1846" Action="None" /> <!-- Prefer 'AsSpan' over 'Substring' -->
<Rule Id="CA1847" Action="None" /> <!-- Use char literal for a single character lookup -->
<Rule Id="CA2000" Action="None" /> <!-- Dispose objects before losing scope -->
<Rule Id="CA2002" Action="None" /> <!-- Do not lock on objects with weak identity -->
<Rule Id="CA2007" Action="None" /> <!-- Consider calling ConfigureAwait on the awaited task -->
<Rule Id="CA2008" Action="None" /> <!-- Do not create tasks without passing a TaskScheduler -->
<Rule Id="CA2009" Action="None" /> <!-- Do not call ToImmutableCollection on an ImmutableCollection value -->
<Rule Id="CA2011" Action="None" /> <!-- Avoid infinite recursion -->
<Rule Id="CA2012" Action="None" /> <!-- Use ValueTasks correctly -->
<Rule Id="CA2013" Action="None" /> <!-- Do not use ReferenceEquals with value types -->
<Rule Id="CA2014" Action="None" /> <!-- Do not use stackalloc in loops. -->
<Rule Id="CA2015" Action="None" /> <!-- Do not define finalizers for types derived from MemoryManager<T> -->
<Rule Id="CA2016" Action="None" /> <!-- Forward the 'CancellationToken' parameter to methods that take one -->
<Rule Id="CA2100" Action="None" /> <!-- Review SQL queries for security vulnerabilities -->
<Rule Id="CA2101" Action="None" /> <!-- Specify marshaling for P/Invoke string arguments -->
<Rule Id="CA2109" Action="None" /> <!-- Review visible event handlers -->
<Rule Id="CA2119" Action="None" /> <!-- Seal methods that satisfy private interfaces -->
<Rule Id="CA2153" Action="None" /> <!-- Do Not Catch Corrupted State Exceptions -->
<Rule Id="CA2200" Action="None" /> <!-- Rethrow to preserve stack details. -->
<Rule Id="CA2201" Action="None" /> <!-- Do not raise reserved exception types -->
<Rule Id="CA2207" Action="None" /> <!-- Initialize value type static fields inline -->
<Rule Id="CA2208" Action="None" /> <!-- Instantiate argument exceptions correctly -->
<Rule Id="CA2211" Action="None" /> <!-- Non-constant fields should not be visible -->
<Rule Id="CA2213" Action="None" /> <!-- Disposable fields should be disposed -->
<Rule Id="CA2214" Action="None" /> <!-- Do not call overridable methods in constructors -->
<Rule Id="CA2215" Action="None" /> <!-- Dispose methods should call base class dispose -->
<Rule Id="CA2216" Action="None" /> <!-- Disposable types should declare finalizer -->
<Rule Id="CA2217" Action="None" /> <!-- Do not mark enums with FlagsAttribute -->
<Rule Id="CA2218" Action="None" /> <!-- Override GetHashCode on overriding Equals -->
<Rule Id="CA2219" Action="None" /> <!-- Do not raise exceptions in finally clauses -->
<Rule Id="CA2224" Action="None" /> <!-- Override Equals on overloading operator equals -->
<Rule Id="CA2225" Action="None" /> <!-- Operator overloads have named alternates -->
<Rule Id="CA2226" Action="None" /> <!-- Operators should have symmetrical overloads -->
<Rule Id="CA2227" Action="None" /> <!-- Collection properties should be read only -->
<Rule Id="CA2229" Action="None" /> <!-- Implement serialization constructors -->
<Rule Id="CA2231" Action="None" /> <!-- Overload operator equals on overriding value type Equals -->
<Rule Id="CA2234" Action="None" /> <!-- Pass system uri objects instead of strings -->
<Rule Id="CA2235" Action="None" /> <!-- Mark all non-serializable fields -->
<Rule Id="CA2237" Action="None" /> <!-- Mark ISerializable types with serializable -->
<Rule Id="CA2241" Action="None" /> <!-- Provide correct arguments to formatting methods -->
<Rule Id="CA2242" Action="None" /> <!-- Test for NaN correctly -->
<Rule Id="CA2243" Action="None" /> <!-- Attribute string literals should parse correctly -->
<Rule Id="CA2244" Action="None" /> <!-- Do not duplicate indexed element initializations -->
<Rule Id="CA2245" Action="None" /> <!-- Do not assign a property to itself. -->
<Rule Id="CA2246" Action="None" /> <!-- Assigning symbol and its member in the same statement. -->
<Rule Id="CA2247" Action="None" /> <!-- Argument passed to TaskCompletionSource constructor should be TaskCreationOptions enum instead of TaskContinuationOptions enum. -->
<Rule Id="CA2248" Action="None" /> <!-- Provide correct 'enum' argument to 'Enum.HasFlag' -->
<Rule Id="CA2249" Action="None" /> <!-- Consider using 'string.Contains' instead of 'string.IndexOf' -->
<Rule Id="CA2250" Action="None" /> <!-- Use 'ThrowIfCancellationRequested' -->
<Rule Id="CA2251" Action="None" /> <!-- Use 'string.Equals' -->
<Rule Id="CA2252" Action="None" /> <!-- This API requires opting into preview features -->
<Rule Id="CA2300" Action="None" /> <!-- Do not use insecure deserializer BinaryFormatter -->
<Rule Id="CA2301" Action="None" /> <!-- Do not call BinaryFormatter.Deserialize without first setting BinaryFormatter.Binder -->
<Rule Id="CA2302" Action="None" /> <!-- Ensure BinaryFormatter.Binder is set before calling BinaryFormatter.Deserialize -->
<Rule Id="CA2305" Action="None" /> <!-- Do not use insecure deserializer LosFormatter -->
<Rule Id="CA2310" Action="None" /> <!-- Do not use insecure deserializer NetDataContractSerializer -->
<Rule Id="CA2311" Action="None" /> <!-- Do not deserialize without first setting NetDataContractSerializer.Binder -->
<Rule Id="CA2312" Action="None" /> <!-- Ensure NetDataContractSerializer.Binder is set before deserializing -->
<Rule Id="CA2315" Action="None" /> <!-- Do not use insecure deserializer ObjectStateFormatter -->
<Rule Id="CA2321" Action="None" /> <!-- Do not deserialize with JavaScriptSerializer using a SimpleTypeResolver -->
<Rule Id="CA2322" Action="None" /> <!-- Ensure JavaScriptSerializer is not initialized with SimpleTypeResolver before deserializing -->
<Rule Id="CA2326" Action="None" /> <!-- Do not use TypeNameHandling values other than None -->
<Rule Id="CA2327" Action="None" /> <!-- Do not use insecure JsonSerializerSettings -->
<Rule Id="CA2328" Action="None" /> <!-- Ensure that JsonSerializerSettings are secure -->
<Rule Id="CA2329" Action="None" /> <!-- Do not deserialize with JsonSerializer using an insecure configuration -->
<Rule Id="CA2330" Action="None" /> <!-- Ensure that JsonSerializer has a secure configuration when deserializing -->
<Rule Id="CA2350" Action="None" /> <!-- Do not use DataTable.ReadXml() with untrusted data -->
<Rule Id="CA2351" Action="None" /> <!-- Do not use DataSet.ReadXml() with untrusted data -->
<Rule Id="CA2352" Action="None" /> <!-- Unsafe DataSet or DataTable in serializable type can be vulnerable to remote code execution attacks -->
<Rule Id="CA2353" Action="None" /> <!-- Unsafe DataSet or DataTable in serializable type -->
<Rule Id="CA2354" Action="None" /> <!-- Unsafe DataSet or DataTable in deserialized object graph can be vulnerable to remote code execution attacks -->
<Rule Id="CA2355" Action="None" /> <!-- Unsafe DataSet or DataTable type found in deserializable object graph -->
<Rule Id="CA2356" Action="None" /> <!-- Unsafe DataSet or DataTable type in web deserializable object graph -->
<Rule Id="CA2361" Action="None" /> <!-- Ensure autogenerated class containing DataSet.ReadXml() is not used with untrusted data -->
<Rule Id="CA2362" Action="None" /> <!-- Unsafe DataSet or DataTable in autogenerated serializable type can be vulnerable to remote code execution attacks -->
<Rule Id="CA3001" Action="None" /> <!-- Review code for SQL injection vulnerabilities -->
<Rule Id="CA3002" Action="None" /> <!-- Review code for XSS vulnerabilities -->
<Rule Id="CA3003" Action="None" /> <!-- Review code for file path injection vulnerabilities -->
<Rule Id="CA3004" Action="None" /> <!-- Review code for information disclosure vulnerabilities -->
<Rule Id="CA3005" Action="None" /> <!-- Review code for LDAP injection vulnerabilities -->
<Rule Id="CA3006" Action="None" /> <!-- Review code for process command injection vulnerabilities -->
<Rule Id="CA3007" Action="None" /> <!-- Review code for open redirect vulnerabilities -->
<Rule Id="CA3008" Action="None" /> <!-- Review code for XPath injection vulnerabilities -->
<Rule Id="CA3009" Action="None" /> <!-- Review code for XML injection vulnerabilities -->
<Rule Id="CA3010" Action="None" /> <!-- Review code for XAML injection vulnerabilities -->
<Rule Id="CA3011" Action="None" /> <!-- Review code for DLL injection vulnerabilities -->
<Rule Id="CA3012" Action="None" /> <!-- Review code for regex injection vulnerabilities -->
<Rule Id="CA3061" Action="None" /> <!-- Do Not Add Schema By URL -->
<Rule Id="CA3075" Action="None" /> <!-- Insecure DTD processing in XML -->
<Rule Id="CA3076" Action="None" /> <!-- Insecure XSLT script processing. -->
<Rule Id="CA3077" Action="None" /> <!-- Insecure Processing in API Design, XmlDocument and XmlTextReader -->
<Rule Id="CA3147" Action="None" /> <!-- Mark Verb Handlers With Validate Antiforgery Token -->
<Rule Id="CA5350" Action="None" /> <!-- Do Not Use Weak Cryptographic Algorithms -->
<Rule Id="CA5351" Action="None" /> <!-- Do Not Use Broken Cryptographic Algorithms -->
<Rule Id="CA5358" Action="None" /> <!-- Review cipher mode usage with cryptography experts -->
<Rule Id="CA5359" Action="None" /> <!-- Do Not Disable Certificate Validation -->
<Rule Id="CA5360" Action="None" /> <!-- Do Not Call Dangerous Methods In Deserialization -->
<Rule Id="CA5361" Action="None" /> <!-- Do Not Disable SChannel Use of Strong Crypto -->
<Rule Id="CA5362" Action="None" /> <!-- Potential reference cycle in deserialized object graph -->
<Rule Id="CA5363" Action="None" /> <!-- Do Not Disable Request Validation -->
<Rule Id="CA5364" Action="None" /> <!-- Do Not Use Deprecated Security Protocols -->
<Rule Id="CA5365" Action="None" /> <!-- Do Not Disable HTTP Header Checking -->
<Rule Id="CA5366" Action="None" /> <!-- Use XmlReader For DataSet Read Xml -->
<Rule Id="CA5367" Action="None" /> <!-- Do Not Serialize Types With Pointer Fields -->
<Rule Id="CA5368" Action="None" /> <!-- Set ViewStateUserKey For Classes Derived From Page -->
<Rule Id="CA5369" Action="None" /> <!-- Use XmlReader For Deserialize -->
<Rule Id="CA5370" Action="None" /> <!-- Use XmlReader For Validating Reader -->
<Rule Id="CA5371" Action="None" /> <!-- Use XmlReader For Schema Read -->
<Rule Id="CA5372" Action="None" /> <!-- Use XmlReader For XPathDocument -->
<Rule Id="CA5373" Action="None" /> <!-- Do not use obsolete key derivation function -->
<Rule Id="CA5374" Action="None" /> <!-- Do Not Use XslTransform -->
<Rule Id="CA5375" Action="None" /> <!-- Do Not Use Account Shared Access Signature -->
<Rule Id="CA5376" Action="None" /> <!-- Use SharedAccessProtocol HttpsOnly -->
<Rule Id="CA5377" Action="None" /> <!-- Use Container Level Access Policy -->
<Rule Id="CA5378" Action="None" /> <!-- Do not disable ServicePointManagerSecurityProtocols -->
<Rule Id="CA5379" Action="None" /> <!-- Do Not Use Weak Key Derivation Function Algorithm -->
<Rule Id="CA5380" Action="None" /> <!-- Do Not Add Certificates To Root Store -->
<Rule Id="CA5381" Action="None" /> <!-- Ensure Certificates Are Not Added To Root Store -->
<Rule Id="CA5382" Action="None" /> <!-- Use Secure Cookies In ASP.Net Core -->
<Rule Id="CA5383" Action="None" /> <!-- Ensure Use Secure Cookies In ASP.Net Core -->
<Rule Id="CA5384" Action="None" /> <!-- Do Not Use Digital Signature Algorithm (DSA) -->
<Rule Id="CA5385" Action="None" /> <!-- Use RivestShamirAdleman (RSA) Algorithm With Sufficient Key Size -->
<Rule Id="CA5386" Action="None" /> <!-- Avoid hardcoding SecurityProtocolType value -->
<Rule Id="CA5387" Action="None" /> <!-- Do Not Use Weak Key Derivation Function With Insufficient Iteration Count -->
<Rule Id="CA5388" Action="None" /> <!-- Ensure Sufficient Iteration Count When Using Weak Key Derivation Function -->
<Rule Id="CA5389" Action="None" /> <!-- Do Not Add Archive Item's Path To The Target File System Path -->
<Rule Id="CA5390" Action="None" /> <!-- Do not hard-code encryption key -->
<Rule Id="CA5391" Action="None" /> <!-- Use antiforgery tokens in ASP.NET Core MVC controllers -->
<Rule Id="CA5392" Action="None" /> <!-- Use DefaultDllImportSearchPaths attribute for P/Invokes -->
<Rule Id="CA5393" Action="None" /> <!-- Do not use unsafe DllImportSearchPath value -->
<Rule Id="CA5394" Action="None" /> <!-- Do not use insecure randomness -->
<Rule Id="CA5395" Action="None" /> <!-- Miss HttpVerb attribute for action methods -->
<Rule Id="CA5396" Action="None" /> <!-- Set HttpOnly to true for HttpCookie -->
<Rule Id="CA5397" Action="None" /> <!-- Do not use deprecated SslProtocols values -->
<Rule Id="CA5398" Action="None" /> <!-- Avoid hardcoded SslProtocols values -->
<Rule Id="CA5399" Action="None" /> <!-- HttpClients should enable certificate revocation list checks -->
<Rule Id="CA5400" Action="None" /> <!-- Ensure HttpClient certificate revocation list check is not disabled -->
<Rule Id="CA5401" Action="None" /> <!-- Do not use CreateEncryptor with non-default IV -->
<Rule Id="CA5402" Action="None" /> <!-- Use CreateEncryptor with the default IV -->
<Rule Id="CA5403" Action="None" /> <!-- Do not hard-code certificate -->
<Rule Id="IL3000" Action="None" /> <!-- Avoid using accessing Assembly file path when publishing as a single-file -->
<Rule Id="IL3001" Action="None" /> <!-- Avoid using accessing Assembly file path when publishing as a single-file -->
<Rule Id="IL3002" Action="None" /> <!-- Using member with RequiresAssemblyFilesAttribute can break functionality when embedded in a single-file app -->
</Rules>
<Rules AnalyzerId="StyleCop.Analyzers" RuleNamespace="StyleCop.Analyzers">
<Rule Id="AD0001" Action="None" /> <!-- Analyzer threw an exception -->
<Rule Id="SA0001" Action="None" /> <!-- XML comments -->
<Rule Id="SA1000" Action="None" /> <!-- Spacing around keywords -->
<Rule Id="SA1001" Action="None" /> <!-- Commas should not be preceded by whitespace -->
<Rule Id="SA1002" Action="None" /> <!-- Semicolons should not be preceded by a space -->
<Rule Id="SA1003" Action="None" /> <!-- Operator should not appear at the end of a line -->
<Rule Id="SA1004" Action="None" /> <!-- Documentation line should begin with a space -->
<Rule Id="SA1005" Action="None" /> <!-- Single line comment should begin with a space -->
<Rule Id="SA1008" Action="None" /> <!-- Opening parenthesis should not be preceded by a space -->
<Rule Id="SA1009" Action="None" /> <!-- Closing parenthesis should not be followed by a space -->
<Rule Id="SA1010" Action="None" /> <!-- Opening square brackets should not be preceded by a space -->
<Rule Id="SA1011" Action="None" /> <!-- Closing square bracket should be followed by a space -->
<Rule Id="SA1012" Action="None" /> <!-- Opening brace should be followed by a space -->
<Rule Id="SA1013" Action="None" /> <!-- Closing brace should be preceded by a space -->
<Rule Id="SA1014" Action="None" /> <!-- Opening generic brackets should not be preceded by a space -->
<Rule Id="SA1015" Action="None" /> <!-- Closing generic bracket should not be followed by a space -->
<Rule Id="SA1018" Action="None" /> <!-- Nullable type symbol should not be preceded by a space -->
<Rule Id="SA1020" Action="None" /> <!-- Increment symbol should not be preceded by a space -->
<Rule Id="SA1021" Action="None" /> <!-- Negative sign should be preceded by a space -->
<Rule Id="SA1023" Action="None" /> <!-- Dereference symbol '*' should not be preceded by a space." -->
<Rule Id="SA1024" Action="None" /> <!-- Colon should be followed by a space -->
<Rule Id="SA1025" Action="None" /> <!-- Code should not contain multiple whitespace characters in a row -->
<Rule Id="SA1026" Action="None" /> <!-- Keyword followed by span or blank line -->
<Rule Id="SA1027" Action="None" /> <!-- Tabs and spaces should be used correctly -->
<Rule Id="SA1028" Action="None" /> <!-- Code should not contain trailing whitespace -->
<Rule Id="SA1100" Action="None" /> <!-- Do not prefix calls with base unless local implementation exists -->
<Rule Id="SA1101" Action="None" /> <!-- Prefix local calls with this -->
<Rule Id="SA1102" Action="None" /> <!-- Query clause should follow previous clause -->
<Rule Id="SA1105" Action="None" /> <!-- Query clauses spanning multiple lines should begin on own line -->
<Rule Id="SA1106" Action="None" /> <!-- Code should not contain empty statements -->
<Rule Id="SA1107" Action="None" /> <!-- Code should not contain multiple statements on one line -->
<Rule Id="SA1108" Action="None" /> <!-- Block statements should not contain embedded comments -->
<Rule Id="SA1110" Action="None" /> <!-- Opening parenthesis or bracket should be on declaration line -->
<Rule Id="SA1111" Action="None" /> <!-- Closing parenthesis should be on line of last parameter -->
<Rule Id="SA1113" Action="None" /> <!-- Comma should be on the same line as previous parameter -->
<Rule Id="SA1114" Action="None" /> <!-- Parameter list should follow declaration -->
<Rule Id="SA1115" Action="None" /> <!-- Parameter should begin on the line after the previous parameter -->
<Rule Id="SA1116" Action="None" /> <!-- Split parameters should start on line after declaration -->
<Rule Id="SA1117" Action="None" /> <!-- Parameters should be on same line or separate lines -->
<Rule Id="SA1118" Action="None" /> <!-- Parameter should not span multiple lines -->
<Rule Id="SA1119" Action="None" /> <!-- Statement should not use unnecessary parenthesis -->
<Rule Id="SA1120" Action="None" /> <!-- Comments should contain text -->
<Rule Id="SA1121" Action="None" /> <!-- Use built-in type alias -->
<Rule Id="SA1122" Action="None" /> <!-- Use string.Empty for empty strings -->
<Rule Id="SA1123" Action="None" /> <!-- Region should not be located within a code element -->
<Rule Id="SA1124" Action="None" /> <!-- Do not use regions -->
<Rule Id="SA1125" Action="None" /> <!-- Use shorthand for nullable types -->
<Rule Id="SA1127" Action="None" /> <!-- Generic type constraints should be on their own line -->
<Rule Id="SA1128" Action="None" /> <!-- Put constructor initializers on their own line -->
<Rule Id="SA1129" Action="None" /> <!-- Do not use default value type constructor -->
<Rule Id="SA1130" Action="None" /> <!-- Use lambda syntax -->
<Rule Id="SA1131" Action="None" /> <!-- Constant values should appear on the right-hand side of comparisons -->
<Rule Id="SA1132" Action="None" /> <!-- Do not combine fields -->
<Rule Id="SA1133" Action="None" /> <!-- Do not combine attributes -->
<Rule Id="SA1134" Action="None" /> <!-- Each attribute should be placed on its own line of code -->
<Rule Id="SA1135" Action="None" /> <!-- Using directive should be qualified -->
<Rule Id="SA1136" Action="None" /> <!-- Enum values should be on separate lines -->
<Rule Id="SA1137" Action="None" /> <!-- Elements should have the same indentation -->
<Rule Id="SA1139" Action="None" /> <!-- Use literal suffix notation instead of casting -->
<Rule Id="SA1141" Action="None" /> <!-- Use tuple syntax -->
<Rule Id="SA1142" Action="None" /> <!-- Refer to tuple elements by name -->
<Rule Id="SA1200" Action="None" /> <!-- Using directive should appear within a namespace declaration -->
<Rule Id="SA1201" Action="None" /> <!-- Elements should appear in the correct order -->
<Rule Id="SA1202" Action="None" /> <!-- Elements should be ordered by access -->
<Rule Id="SA1203" Action="None" /> <!-- Constants should appear before fields -->
<Rule Id="SA1204" Action="None" /> <!-- Static elements should appear before instance elements -->
<Rule Id="SA1205" Action="None" /> <!-- Partial elements should declare an access modifier -->
<Rule Id="SA1206" Action="None" /> <!-- Keyword ordering -->
<Rule Id="SA1208" Action="None" /> <!-- Using directive ordering -->
<Rule Id="SA1209" Action="None" /> <!-- Using alias directives should be placed after all using namespace directives -->
<Rule Id="SA1210" Action="None" /> <!-- Using directives should be ordered alphabetically by the namespaces -->
<Rule Id="SA1211" Action="None" /> <!-- Using alias directive ordering -->
<Rule Id="SA1212" Action="None" /> <!-- A get accessor appears after a set accessor within a property or indexer -->
<Rule Id="SA1214" Action="None" /> <!-- Readonly fields should appear before non-readonly fields -->
<Rule Id="SA1216" Action="None" /> <!-- Using static directives should be placed at the correct location -->
<Rule Id="SA1300" Action="None" /> <!-- Element should begin with an uppercase letter -->
<Rule Id="SA1302" Action="None" /> <!-- Interface names should begin with I -->
<Rule Id="SA1303" Action="None" /> <!-- Const field names should begin with upper-case letter -->
<Rule Id="SA1304" Action="None" /> <!-- Non-private readonly fields should begin with upper-case letter -->
<Rule Id="SA1306" Action="None" /> <!-- Field should begin with lower-case letter -->
<Rule Id="SA1307" Action="None" /> <!-- Field should begin with upper-case letter -->
<Rule Id="SA1308" Action="None" /> <!-- Field should not begin with the prefix 's_' -->
<Rule Id="SA1309" Action="None" /> <!-- Field names should not begin with underscore -->
<Rule Id="SA1310" Action="None" /> <!-- Field should not contain an underscore -->
<Rule Id="SA1311" Action="None" /> <!-- Static readonly fields should begin with upper-case letter -->
<Rule Id="SA1312" Action="None" /> <!-- Variable should begin with lower-case letter -->
<Rule Id="SA1313" Action="None" /> <!-- Parameter should begin with lower-case letter -->
<Rule Id="SA1314" Action="None" /> <!-- Type parameter names should begin with T -->
<Rule Id="SA1316" Action="None" /> <!-- Tuple element names should use correct casing -->
<Rule Id="SA1400" Action="None" /> <!-- Member should declare an access modifer -->
<Rule Id="SA1401" Action="None" /> <!-- Fields should be private -->
<Rule Id="SA1402" Action="None" /> <!-- File may only contain a single type -->
<Rule Id="SA1403" Action="None" /> <!-- File may only contain a single namespace -->
<Rule Id="SA1404" Action="None" /> <!-- Code analysis suppression should have justification -->
<Rule Id="SA1405" Action="None" /> <!-- Debug.Assert should provide message text -->
<Rule Id="SA1407" Action="None" /> <!-- Arithmetic expressions should declare precedence -->
<Rule Id="SA1408" Action="None" /> <!-- Conditional expressions should declare precedence -->
<Rule Id="SA1410" Action="None" /> <!-- Remove delegate parens when possible -->
<Rule Id="SA1411" Action="None" /> <!-- Attribute constructor shouldn't use unnecessary parenthesis -->
<Rule Id="SA1413" Action="None" /> <!-- Use trailing comma in multi-line initializers -->
<Rule Id="SA1414" Action="None" /> <!-- Tuple types in signatures should have element names -->
<Rule Id="SA1500" Action="None" /> <!-- Braces for multi-line statements should not share line -->
<Rule Id="SA1501" Action="None" /> <!-- Statement should not be on a single line -->
<Rule Id="SA1502" Action="None" /> <!-- Element should not be on a single line -->
<Rule Id="SA1503" Action="None" /> <!-- Braces should not be omitted -->
<Rule Id="SA1504" Action="None" /> <!-- All accessors should be single-line or multi-line -->
<Rule Id="SA1505" Action="None" /> <!-- An opening brace should not be followed by a blank line -->
<Rule Id="SA1506" Action="None" /> <!-- Element documentation headers should not be followed by blank line -->
<Rule Id="SA1507" Action="None" /> <!-- Code should not contain multiple blank lines in a row -->
<Rule Id="SA1508" Action="None" /> <!-- A closing brace should not be preceded by a blank line -->
<Rule Id="SA1509" Action="None" /> <!-- Opening braces should not be preceded by blank line -->
<Rule Id="SA1510" Action="None" /> <!-- 'else' statement should not be preceded by a blank line -->
<Rule Id="SA1512" Action="None" /> <!-- Single-line comments should not be followed by blank line -->
<Rule Id="SA1513" Action="None" /> <!-- Closing brace should be followed by blank line -->
<Rule Id="SA1514" Action="None" /> <!-- Element documentation header should be preceded by blank line -->
<Rule Id="SA1515" Action="None" /> <!-- Single-line comment should be preceded by blank line -->
<Rule Id="SA1516" Action="None" /> <!-- Elements should be separated by blank line -->
<Rule Id="SA1517" Action="None" /> <!-- Code should not contain blank lines at start of file -->
<Rule Id="SA1518" Action="None" /> <!-- Code should not contain blank lines at the end of the file -->
<Rule Id="SA1519" Action="None" /> <!-- Braces should not be omitted from multi-line child statement -->
<Rule Id="SA1520" Action="None" /> <!-- Use braces consistently -->
<Rule Id="SA1600" Action="None" /> <!-- Elements should be documented -->
<Rule Id="SA1601" Action="None" /> <!-- Partial elements should be documented -->
<Rule Id="SA1602" Action="None" /> <!-- Enumeration items should be documented -->
<Rule Id="SA1604" Action="None" /> <!-- Element documentation should have summary -->
<Rule Id="SA1605" Action="None" /> <!-- Partial element documentation should have summary -->
<Rule Id="SA1606" Action="None" /> <!-- Element documentation should have summary text -->
<Rule Id="SA1608" Action="None" /> <!-- Element documentation should not have default summary -->
<Rule Id="SA1610" Action="None" /> <!-- Property documentation should have value text -->
<Rule Id="SA1611" Action="None" /> <!-- The documentation for parameter 'message' is missing -->
<Rule Id="SA1612" Action="None" /> <!-- The parameter documentation is at incorrect position -->
<Rule Id="SA1614" Action="None" /> <!-- Element parameter documentation should have text -->
<Rule Id="SA1615" Action="None" /> <!-- Element return value should be documented -->
<Rule Id="SA1616" Action="None" /> <!-- Element return value documentation should have text -->
<Rule Id="SA1618" Action="None" /> <!-- The documentation for type parameter is missing -->
<Rule Id="SA1619" Action="None" /> <!-- The documentation for type parameter is missing -->
<Rule Id="SA1622" Action="None" /> <!-- Generic type parameter documentation should have text -->
<Rule Id="SA1623" Action="None" /> <!-- Property documentation text -->
<Rule Id="SA1624" Action="None" /> <!-- Because the property only contains a visible get accessor, the documentation summary text should begin with 'Gets' -->
<Rule Id="SA1625" Action="None" /> <!-- Element documentation should not be copied and pasted -->
<Rule Id="SA1626" Action="None" /> <!-- Single-line comments should not use documentation style slashes -->
<Rule Id="SA1627" Action="None" /> <!-- The documentation text within the \'exception\' tag should not be empty -->
<Rule Id="SA1629" Action="None" /> <!-- Documentation text should end with a period -->
<Rule Id="SA1633" Action="None" /> <!-- File should have header -->
<Rule Id="SA1642" Action="None" /> <!-- Constructor summary documentation should begin with standard text -->
<Rule Id="SA1643" Action="None" /> <!-- Destructor summary documentation should begin with standard text -->
<Rule Id="SA1649" Action="None" /> <!-- File name should match first type name -->
</Rules>
<Rules AnalyzerId="Microsoft.CodeAnalysis.CSharp.CodeStyle" RuleNamespace="Microsoft.CodeQuality.Analyzers">
<Rule Id="IDE0001" Action="Hidden" /> <!-- SimplifyNames -->
<Rule Id="IDE0002" Action="Hidden" /> <!-- SimplifyMemberAccess -->
<Rule Id="IDE0003" Action="Hidden" /> <!-- RemoveQualification -->
<Rule Id="IDE0004" Action="Hidden" /> <!-- RemoveUnnecessaryCast -->
<Rule Id="IDE0005" Action="Hidden" /> <!-- RemoveUnnecessaryImports -->
<Rule Id="IDE0006" Action="Hidden" /> <!-- IntellisenseBuildFailed -->
<Rule Id="IDE0007" Action="Hidden" /> <!-- UseImplicitType -->
<Rule Id="IDE0008" Action="Hidden" /> <!-- UseExplicitType -->
<Rule Id="IDE0009" Action="Hidden" /> <!-- AddQualification -->
<Rule Id="IDE0010" Action="Hidden" /> <!-- PopulateSwitchStatement -->
<Rule Id="IDE0011" Action="Hidden" /> <!-- AddBraces -->
<Rule Id="IDE0016" Action="Hidden" /> <!-- UseThrowExpression -->
<Rule Id="IDE0017" Action="Hidden" /> <!-- UseObjectInitializer -->
<Rule Id="IDE0018" Action="Hidden" /> <!-- InlineDeclaration -->
<Rule Id="IDE0019" Action="Hidden" /> <!-- InlineAsTypeCheck -->
<Rule Id="IDE0020" Action="Hidden" /> <!-- InlineIsTypeCheck -->
<Rule Id="IDE0021" Action="Hidden" /> <!-- UseExpressionBodyForConstructors -->
<Rule Id="IDE0022" Action="Hidden" /> <!-- UseExpressionBodyForMethods -->
<Rule Id="IDE0023" Action="Hidden" /> <!-- UseExpressionBodyForConversionOperators -->
<Rule Id="IDE0024" Action="Hidden" /> <!-- UseExpressionBodyForOperators -->
<Rule Id="IDE0025" Action="Hidden" /> <!-- UseExpressionBodyForProperties -->
<Rule Id="IDE0026" Action="Hidden" /> <!-- UseExpressionBodyForIndexers -->
<Rule Id="IDE0027" Action="Hidden" /> <!-- UseExpressionBodyForAccessors -->
<Rule Id="IDE0028" Action="Hidden" /> <!-- UseCollectionInitializer -->
<Rule Id="IDE0029" Action="Hidden" /> <!-- UseCoalesceExpression -->
<Rule Id="IDE0030" Action="Hidden" /> <!-- UseCoalesceExpressionForNullable -->
<Rule Id="IDE0031" Action="Hidden" /> <!-- UseNullPropagation -->
<Rule Id="IDE0032" Action="Hidden" /> <!-- UseAutoProperty -->
<Rule Id="IDE0033" Action="Hidden" /> <!-- UseExplicitTupleName -->
<Rule Id="IDE0034" Action="Hidden" /> <!-- UseDefaultLiteral -->
<Rule Id="IDE0035" Action="Hidden" /> <!-- RemoveUnreachableCode -->
<Rule Id="IDE0036" Action="Hidden" /> <!-- OrderModifiers -->
<Rule Id="IDE0037" Action="Hidden" /> <!-- UseInferredMemberName -->
<Rule Id="IDE0038" Action="Hidden" /> <!-- InlineIsTypeWithoutNameCheck -->
<Rule Id="IDE0039" Action="Hidden" /> <!-- UseLocalFunction -->
<Rule Id="IDE0040" Action="Hidden" /> <!-- AddAccessibilityModifiers -->
<Rule Id="IDE0041" Action="Hidden" /> <!-- UseIsNullCheck -->
<Rule Id="IDE0042" Action="Hidden" /> <!-- UseDeconstruction -->
<Rule Id="IDE0043" Action="Hidden" /> <!-- ValidateFormatString -->
<Rule Id="IDE0044" Action="Hidden" /> <!-- MakeFieldReadonly -->
<Rule Id="IDE0045" Action="Hidden" /> <!-- UseConditionalExpressionForAssignment -->
<Rule Id="IDE0046" Action="Hidden" /> <!-- UseConditionalExpressionForReturn -->
<Rule Id="IDE0047" Action="Hidden" /> <!-- RemoveUnnecessaryParentheses -->
<Rule Id="IDE0048" Action="Hidden" /> <!-- AddRequiredParentheses -->
<Rule Id="IDE0049" Action="Hidden" /> <!-- PreferBuiltInOrFrameworkType -->
<Rule Id="IDE0050" Action="Hidden" /> <!-- ConvertAnonymousTypeToTuple -->
<Rule Id="IDE0051" Action="Hidden" /> <!-- RemoveUnusedMembers -->
<Rule Id="IDE0052" Action="Hidden" /> <!-- RemoveUnreadMembers -->
<Rule Id="IDE0053" Action="Hidden" /> <!-- UseExpressionBodyForLambdaExpressions -->
<Rule Id="IDE0054" Action="Hidden" /> <!-- UseCompoundAssignment -->
<Rule Id="IDE0055" Action="Hidden" /> <!-- Formatting -->
<Rule Id="IDE0056" Action="Hidden" /> <!-- UseIndexOperator -->
<Rule Id="IDE0057" Action="Hidden" /> <!-- UseRangeOperator -->
<Rule Id="IDE0058" Action="Hidden" /> <!-- ExpressionValueIsUnused -->
<Rule Id="IDE0059" Action="Hidden" /> <!-- ValueAssignedIsUnused -->
<Rule Id="IDE0060" Action="Hidden" /> <!-- UnusedParameter -->
<Rule Id="IDE0061" Action="Hidden" /> <!-- UseExpressionBodyForLocalFunctions -->
<Rule Id="IDE0062" Action="Hidden" /> <!-- MakeLocalFunctionStatic -->
<Rule Id="IDE0063" Action="Hidden" /> <!-- UseSimpleUsingStatement -->
<Rule Id="IDE0064" Action="Hidden" /> <!-- MakeStructFieldsWritable -->
<Rule Id="IDE0065" Action="Hidden" /> <!-- MoveMisplacedUsingDirectives -->
<Rule Id="IDE0066" Action="Hidden" /> <!-- ConvertSwitchStatementToExpression -->
<Rule Id="IDE0070" Action="Hidden" /> <!-- UseSystemHashCode -->
<Rule Id="IDE0071" Action="Hidden" /> <!-- SimplifyInterpolation -->
<Rule Id="IDE0072" Action="Hidden" /> <!-- PopulateSwitchExpression -->
<Rule Id="IDE0073" Action="Hidden" /> <!-- FileHeaderMismatch -->
<Rule Id="IDE0074" Action="Hidden" /> <!-- UseCoalesceCompoundAssignment -->
<Rule Id="IDE0075" Action="Hidden" /> <!-- SimplifyConditionalExpression -->
<Rule Id="IDE0076" Action="Hidden" /> <!-- InvalidSuppressMessageAttribute -->
<Rule Id="IDE0077" Action="Hidden" /> <!-- LegacyFormatSuppressMessageAttribute -->
<Rule Id="IDE0078" Action="Hidden" /> <!-- UsePatternCombinators -->
<Rule Id="IDE0079" Action="Hidden" /> <!-- RemoveUnnecessarySuppression -->
<Rule Id="IDE0080" Action="Hidden" /> <!-- RemoveConfusingSuppressionForIsExpression -->
<Rule Id="IDE0081" Action="Hidden" /> <!-- RemoveUnnecessaryByVal -->
<Rule Id="IDE0082" Action="Hidden" /> <!-- ConvertTypeOfToNameOf -->
<Rule Id="IDE0083" Action="Hidden" /> <!-- UseNotPattern -->
<Rule Id="IDE0084" Action="Hidden" /> <!-- UseIsNotExpression -->
<Rule Id="IDE0090" Action="Hidden" /> <!-- UseNew -->
<Rule Id="IDE0100" Action="Hidden" /> <!-- RemoveRedundantEquality -->
<Rule Id="IDE0110" Action="Hidden" /> <!-- RemoveUnnecessaryDiscard -->
<Rule Id="IDE0120" Action="Hidden" /> <!-- SimplifyLINQExpression -->
<Rule Id="IDE0130" Action="Hidden" /> <!-- NamespaceDoesNotMatchFolderStructure -->
<Rule Id="IDE0140" Action="Hidden" /> <!-- SimplifyObjectCreationDiagnosticId -->
<Rule Id="IDE0150" Action="Hidden" /> <!-- UseNullCheckOverTypeCheckDiagnosticId -->
<Rule Id="IDE1001" Action="Hidden" /> <!-- AnalyzerChanged -->
<Rule Id="IDE1002" Action="Hidden" /> <!-- AnalyzerDependencyConflict -->
<Rule Id="IDE1003" Action="Hidden" /> <!-- MissingAnalyzerReference -->
<Rule Id="IDE1004" Action="Hidden" /> <!-- ErrorReadingRuleset -->
<Rule Id="IDE1005" Action="Hidden" /> <!-- InvokeDelegateWithConditionalAccess -->
<Rule Id="IDE1006" Action="Hidden" /> <!-- NamingRule -->
<Rule Id="IDE1007" Action="Hidden" /> <!-- UnboundIdentifier -->
<Rule Id="IDE1008" Action="Hidden" /> <!-- UnboundConstructor -->
<Rule Id="IDE2000" Action="Hidden" /> <!-- MultipleBlankLines -->
<Rule Id="IDE2001" Action="Hidden" /> <!-- EmbeddedStatementsMustBeOnTheirOwnLine -->
<Rule Id="IDE2002" Action="Hidden" /> <!-- ConsecutiveBracesMustNotHaveBlankLinesBetweenThem -->
<Rule Id="IDE2003" Action="Hidden" /> <!-- ConsecutiveStatementPlacement -->
<Rule Id="IDE2004" Action="Hidden" /> <!-- BlankLineNotAllowedAfterConstructorInitializerColon -->
</Rules>
<Rules AnalyzerId="xunit.analyzers" RuleNamespace="xunit.analyzers">
<Rule Id="xUnit1000" Action="Warning" /> <!-- Test classes must be public -->
<Rule Id="xUnit1001" Action="Warning" /> <!-- Fact methods cannot have parameters -->
<Rule Id="xUnit1002" Action="Warning" /> <!-- Test methods cannot have multiple Fact or Theory attributes -->
<Rule Id="xUnit1003" Action="Warning" /> <!-- Theory methods must have test data -->
<Rule Id="xUnit1004" Action="Warning" /> <!-- Test methods should not be skipped -->
<Rule Id="xUnit1005" Action="Warning" /> <!-- Fact methods should not have test data -->
<Rule Id="xUnit1006" Action="Warning" /> <!-- Theory methods should have parameters -->
<Rule Id="xUnit1007" Action="Warning" /> <!-- ClassData must point at a valid class -->
<Rule Id="xUnit1008" Action="Warning" /> <!-- Test data attribute should only be used on a Theory -->
<Rule Id="xUnit1009" Action="Warning" /> <!-- InlineData must match the number of method parameters -->
<Rule Id="xUnit1010" Action="Warning" /> <!-- The value is not convertible to the method parameter type -->
<Rule Id="xUnit1011" Action="Warning" /> <!-- There is no matching method parameter -->
<Rule Id="xUnit1012" Action="Warning" /> <!-- Null should not be used for value type parameters -->
<Rule Id="xUnit1013" Action="Warning" /> <!-- Public methods should be marked as test -->
<Rule Id="xUnit1014" Action="Warning" /> <!-- MemberData should use nameof operator for member name -->
<Rule Id="xUnit1015" Action="Warning" /> <!-- MemberData must reference an existing member -->
<Rule Id="xUnit1016" Action="Warning" /> <!-- MemberData must reference a public member -->
<Rule Id="xUnit1017" Action="Warning" /> <!-- MemberData must reference a static member -->
<Rule Id="xUnit1018" Action="Warning" /> <!-- MemberData must reference a valid member kind -->
<Rule Id="xUnit1019" Action="Warning" /> <!-- MemberData must reference a member providing a valid data type -->
<Rule Id="xUnit1020" Action="Warning" /> <!-- MemberData must reference a property with a getter -->
<Rule Id="xUnit1021" Action="Warning" /> <!-- MemberData should not have parameters if the referenced member is not a method -->
<Rule Id="xUnit1022" Action="Warning" /> <!-- Theory methods cannot have a parameter array -->
<Rule Id="xUnit1023" Action="Warning" /> <!-- Theory methods cannot have default parameter values -->
<Rule Id="xUnit1024" Action="Warning" /> <!-- Test methods cannot have overloads -->
<Rule Id="xUnit1025" Action="Warning" /> <!-- InlineData should be unique within the Theory it belongs to -->
<Rule Id="xUnit1026" Action="Warning" /> <!-- Theory methods should use all of their parameters -->
<Rule Id="xUnit2000" Action="Warning" /> <!-- Constants and literals should be the expected argument -->
<Rule Id="xUnit2001" Action="Warning" /> <!-- Do not use invalid equality check -->
<Rule Id="xUnit2002" Action="Warning" /> <!-- Do not use null check on value type -->
<Rule Id="xUnit2003" Action="Warning" /> <!-- Do not use equality check to test for null value -->
<Rule Id="xUnit2004" Action="Warning" /> <!-- Do not use equality check to test for boolean conditions -->
<Rule Id="xUnit2005" Action="Warning" /> <!-- Do not use identity check on value type -->
<Rule Id="xUnit2006" Action="Warning" /> <!-- Do not use invalid string equality check -->
<Rule Id="xUnit2007" Action="Warning" /> <!-- Do not use typeof expression to check the type -->
<Rule Id="xUnit2008" Action="Warning" /> <!-- Do not use boolean check to match on regular expressions -->
<Rule Id="xUnit2009" Action="Warning" /> <!-- Do not use boolean check to check for substrings -->
<Rule Id="xUnit2010" Action="Warning" /> <!-- Do not use boolean check to check for string equality -->
<Rule Id="xUnit2011" Action="Warning" /> <!-- Do not use empty collection check -->
<Rule Id="xUnit2012" Action="Warning" /> <!-- Do not use Enumerable.Any() to check if a value exists in a collection -->
<Rule Id="xUnit2013" Action="None" /> <!-- Do not use equality check to check for collection size. -->
<Rule Id="xUnit2014" Action="Warning" /> <!-- Do not use throws check to check for asynchronously thrown exception -->
<Rule Id="xUnit2015" Action="Warning" /> <!-- Do not use typeof expression to check the exception type -->
<Rule Id="xUnit2016" Action="Warning" /> <!-- Keep precision in the allowed range when asserting equality of doubles or decimals -->
<Rule Id="xUnit2017" Action="None" /> <!-- Do not use Contains() to check if a value exists in a collection -->
<Rule Id="xUnit2018" Action="Warning" /> <!-- Do not compare an object's exact type to an abstract class or interface -->
<Rule Id="xUnit2019" Action="Warning" /> <!-- Do not use obsolete throws check to check for asynchronously thrown exception -->
<Rule Id="xUnit3000" Action="Warning" /> <!-- Test case classes must derive directly or indirectly from Xunit.LongLivedMarshalByRefObject -->
<Rule Id="xUnit3001" Action="Warning" /> <!-- Classes that implement Xunit.Abstractions.IXunitSerializable must have a public parameterless constructor -->
</Rules>
</RuleSet>

View File

@ -88,11 +88,14 @@
<GenFacadesIgnoreBuildAndRevisionMismatch>true</GenFacadesIgnoreBuildAndRevisionMismatch>
<!-- Disable analyzers for tests and unsupported projects -->
<RunAnalyzers Condition="'$(IsTestProject)' != 'true' and '$(IsSourceProject)' != 'true'">false</RunAnalyzers>
<CodeAnalysisRuleset Condition="'$(IsTestProject)' == 'true'">$(RepositoryEngineeringDir)CodeAnalysis.test.ruleset</CodeAnalysisRuleset>
<!-- Enable documentation file generation by the compiler for all libraries except for vbproj. -->
<GenerateDocumentationFile Condition="'$(IsSourceProject)' == 'true' and '$(MSBuildProjectExtension)' != '.vbproj'">true</GenerateDocumentationFile>
<CLSCompliant Condition="'$(CLSCompliant)' == '' and '$(IsTestProject)' != 'true' and '$(IsTestSupportProject)' != 'true'">true</CLSCompliant>
</PropertyGroup>
<ItemGroup Condition="'$(IsTestProject)' == 'true'">
<EditorConfigFiles Remove="$(RepositoryEngineeringDir)CodeAnalysis.src.globalconfig" />
<EditorConfigFiles Include="$(RepositoryEngineeringDir)CodeAnalysis.test.globalconfig" />
</ItemGroup>
<!-- Set up common paths -->
<PropertyGroup>