diff --git a/src/Polly.Core/CircuitBreaker/CircuitBreakerManualControl.cs b/src/Polly.Core/CircuitBreaker/CircuitBreakerManualControl.cs index 1258c4f5ae4..4eca9c8c355 100644 --- a/src/Polly.Core/CircuitBreaker/CircuitBreakerManualControl.cs +++ b/src/Polly.Core/CircuitBreaker/CircuitBreakerManualControl.cs @@ -148,7 +148,7 @@ public async Task CloseAsync(CancellationToken cancellationToken = default) } } - private class RegistrationDisposable : IDisposable + private sealed class RegistrationDisposable : IDisposable { private readonly Action _disposeAction; diff --git a/src/Polly.Core/CircuitBreaker/Controller/ScheduledTaskExecutor.cs b/src/Polly.Core/CircuitBreaker/Controller/ScheduledTaskExecutor.cs index 7bc3f6f6d5f..a379949f38c 100644 --- a/src/Polly.Core/CircuitBreaker/Controller/ScheduledTaskExecutor.cs +++ b/src/Polly.Core/CircuitBreaker/Controller/ScheduledTaskExecutor.cs @@ -84,5 +84,5 @@ private async Task StartProcessingAsync() } } - private record Entry(Func TaskFactory, bool ContinueOnCapturedContext, TaskCompletionSource TaskCompletion); + private sealed record Entry(Func TaskFactory, bool ContinueOnCapturedContext, TaskCompletionSource TaskCompletion); } diff --git a/src/Polly.Core/Registry/RegistryPipelineComponentBuilder.cs b/src/Polly.Core/Registry/RegistryPipelineComponentBuilder.cs index fb826066e7d..848cd6eaeeb 100644 --- a/src/Polly.Core/Registry/RegistryPipelineComponentBuilder.cs +++ b/src/Polly.Core/Registry/RegistryPipelineComponentBuilder.cs @@ -6,7 +6,7 @@ namespace Polly.Registry; /// /// Builds a used by the registry. /// -internal class RegistryPipelineComponentBuilder +internal sealed class RegistryPipelineComponentBuilder where TBuilder : ResiliencePipelineBuilderBase where TKey : notnull { @@ -75,7 +75,7 @@ private Builder CreateBuilder() builder); } - private record Builder( + private sealed record Builder( Func ComponentFactory, List ReloadTokens, ResilienceStrategyTelemetry Telemetry, diff --git a/src/Polly.Core/Simmy/Fault/ChaosFaultStrategy.cs b/src/Polly.Core/Simmy/Fault/ChaosFaultStrategy.cs index 51b3a9e2914..6caede5ead6 100644 --- a/src/Polly.Core/Simmy/Fault/ChaosFaultStrategy.cs +++ b/src/Polly.Core/Simmy/Fault/ChaosFaultStrategy.cs @@ -2,7 +2,7 @@ namespace Polly.Simmy.Fault; -internal class ChaosFaultStrategy : ChaosStrategy +internal sealed class ChaosFaultStrategy : ChaosStrategy { private readonly ResilienceStrategyTelemetry _telemetry; diff --git a/src/Polly.Core/Simmy/Outcomes/ChaosOutcomeStrategy.cs b/src/Polly.Core/Simmy/Outcomes/ChaosOutcomeStrategy.cs index e9f224bfb0b..b62cf94cbb9 100644 --- a/src/Polly.Core/Simmy/Outcomes/ChaosOutcomeStrategy.cs +++ b/src/Polly.Core/Simmy/Outcomes/ChaosOutcomeStrategy.cs @@ -2,7 +2,7 @@ namespace Polly.Simmy.Outcomes; -internal class ChaosOutcomeStrategy : ChaosStrategy +internal sealed class ChaosOutcomeStrategy : ChaosStrategy { private readonly ResilienceStrategyTelemetry _telemetry; private readonly Func, ValueTask>? _onOutcomeInjected; diff --git a/src/Polly.Core/Utils/Pipeline/ComponentWithDisposeCallbacks.cs b/src/Polly.Core/Utils/Pipeline/ComponentWithDisposeCallbacks.cs index 61162a94528..ca407426ad2 100644 --- a/src/Polly.Core/Utils/Pipeline/ComponentWithDisposeCallbacks.cs +++ b/src/Polly.Core/Utils/Pipeline/ComponentWithDisposeCallbacks.cs @@ -1,6 +1,6 @@ namespace Polly.Utils.Pipeline; -internal class ComponentWithDisposeCallbacks : PipelineComponent +internal sealed class ComponentWithDisposeCallbacks : PipelineComponent { private readonly List _callbacks; diff --git a/src/Polly.Core/Utils/Pipeline/ExternalComponent.cs b/src/Polly.Core/Utils/Pipeline/ExternalComponent.cs index e8ad4cd5583..de12647c0b0 100644 --- a/src/Polly.Core/Utils/Pipeline/ExternalComponent.cs +++ b/src/Polly.Core/Utils/Pipeline/ExternalComponent.cs @@ -1,7 +1,7 @@ namespace Polly.Utils.Pipeline; [DebuggerDisplay("{Component}")] -internal class ExternalComponent : PipelineComponent +internal sealed class ExternalComponent : PipelineComponent { public ExternalComponent(PipelineComponent component) => Component = component; diff --git a/src/Polly.Core/Utils/Pipeline/ReloadableComponent.cs b/src/Polly.Core/Utils/Pipeline/ReloadableComponent.cs index 7e0b0435c1b..91c438ce2e7 100644 --- a/src/Polly.Core/Utils/Pipeline/ReloadableComponent.cs +++ b/src/Polly.Core/Utils/Pipeline/ReloadableComponent.cs @@ -98,15 +98,15 @@ private void DisposeRegistration() _tokenSource.Dispose(); } - internal record ReloadFailedArguments(Exception Exception); + internal sealed record ReloadFailedArguments(Exception Exception); - internal record DisposedFailedArguments(Exception Exception); + internal sealed record DisposedFailedArguments(Exception Exception); #pragma warning disable S2094 // Classes should not be empty #pragma warning disable S3253 // Constructor and destructor declarations should not be redundant - internal record OnReloadArguments(); + internal sealed record OnReloadArguments(); #pragma warning restore S3253 // Constructor and destructor declarations should not be redundant #pragma warning restore S2094 // Classes should not be empty - internal record Entry(PipelineComponent Component, List ReloadTokens, ResilienceStrategyTelemetry Telemetry); + internal sealed record Entry(PipelineComponent Component, List ReloadTokens, ResilienceStrategyTelemetry Telemetry); } diff --git a/src/Polly.Extensions/DependencyInjection/PollyServiceCollectionExtensions.cs b/src/Polly.Extensions/DependencyInjection/PollyServiceCollectionExtensions.cs index 5b19cae5ef0..c310f22976e 100644 --- a/src/Polly.Extensions/DependencyInjection/PollyServiceCollectionExtensions.cs +++ b/src/Polly.Extensions/DependencyInjection/PollyServiceCollectionExtensions.cs @@ -288,7 +288,7 @@ private static void AddResiliencePipelineBuilder(this IServiceCollection service }); } - private class RegistryMarker + private sealed class RegistryMarker { public static readonly ServiceDescriptor ServiceDescriptor = ServiceDescriptor.Singleton(new RegistryMarker()); } diff --git a/src/Polly.Extensions/Telemetry/ResilienceTelemetryTags.cs b/src/Polly.Extensions/Telemetry/ResilienceTelemetryTags.cs index 0f8ed179ecf..2a38a5b9b9f 100644 --- a/src/Polly.Extensions/Telemetry/ResilienceTelemetryTags.cs +++ b/src/Polly.Extensions/Telemetry/ResilienceTelemetryTags.cs @@ -1,6 +1,6 @@ namespace Polly.Telemetry; -internal class ResilienceTelemetryTags +internal static class ResilienceTelemetryTags { public const string EventName = "event.name"; diff --git a/src/Polly/Caching/AsyncGenericCacheProvider.cs b/src/Polly/Caching/AsyncGenericCacheProvider.cs index f7480745c81..090b8cb575a 100644 --- a/src/Polly/Caching/AsyncGenericCacheProvider.cs +++ b/src/Polly/Caching/AsyncGenericCacheProvider.cs @@ -5,7 +5,7 @@ namespace Polly.Caching; /// Provides a strongly-typed wrapper over a non-generic CacheProviderAsync. /// /// The type of the objects in the cache. -internal class AsyncGenericCacheProvider : IAsyncCacheProvider +internal sealed class AsyncGenericCacheProvider : IAsyncCacheProvider { private readonly IAsyncCacheProvider _wrappedCacheProvider; diff --git a/src/Polly/Caching/GenericCacheProvider.cs b/src/Polly/Caching/GenericCacheProvider.cs index 73b617b667f..abfec5768be 100644 --- a/src/Polly/Caching/GenericCacheProvider.cs +++ b/src/Polly/Caching/GenericCacheProvider.cs @@ -5,7 +5,7 @@ namespace Polly.Caching; /// Provides a strongly-typed wrapper over a non-generic CacheProvider. /// /// The type of the objects in the cache. -internal class GenericCacheProvider : ISyncCacheProvider +internal sealed class GenericCacheProvider : ISyncCacheProvider { private readonly ISyncCacheProvider _wrappedCacheProvider; diff --git a/src/Polly/Caching/GenericTtlStrategy.cs b/src/Polly/Caching/GenericTtlStrategy.cs index ec4a6dafea4..db22a8af750 100644 --- a/src/Polly/Caching/GenericTtlStrategy.cs +++ b/src/Polly/Caching/GenericTtlStrategy.cs @@ -4,7 +4,7 @@ namespace Polly.Caching; /// /// Represents a strongly-typed wrapper of a non-generic strategy. /// -internal class GenericTtlStrategy : ITtlStrategy +internal sealed class GenericTtlStrategy : ITtlStrategy { private readonly ITtlStrategy _wrappedTtlStrategy; diff --git a/src/Polly/CircuitBreaker/AdvancedCircuitController.cs b/src/Polly/CircuitBreaker/AdvancedCircuitController.cs index 15e69154599..79e4783007c 100644 --- a/src/Polly/CircuitBreaker/AdvancedCircuitController.cs +++ b/src/Polly/CircuitBreaker/AdvancedCircuitController.cs @@ -1,6 +1,6 @@ namespace Polly.CircuitBreaker; -internal class AdvancedCircuitController : CircuitStateController +internal sealed class AdvancedCircuitController : CircuitStateController { private const short NumberOfWindows = 10; internal static readonly long ResolutionOfCircuitTimer = TimeSpan.FromMilliseconds(20).Ticks; diff --git a/src/Polly/CircuitBreaker/AsyncCircuitBreakerEngine.cs b/src/Polly/CircuitBreaker/AsyncCircuitBreakerEngine.cs index 89c6c31242c..1a5905fa228 100644 --- a/src/Polly/CircuitBreaker/AsyncCircuitBreakerEngine.cs +++ b/src/Polly/CircuitBreaker/AsyncCircuitBreakerEngine.cs @@ -1,6 +1,6 @@ namespace Polly.CircuitBreaker; -internal class AsyncCircuitBreakerEngine +internal static class AsyncCircuitBreakerEngine { internal static async Task ImplementationAsync( Func> action, diff --git a/src/Polly/CircuitBreaker/CircuitBreakerEngine.cs b/src/Polly/CircuitBreaker/CircuitBreakerEngine.cs index a51fd4b8803..ef8883aac28 100644 --- a/src/Polly/CircuitBreaker/CircuitBreakerEngine.cs +++ b/src/Polly/CircuitBreaker/CircuitBreakerEngine.cs @@ -2,7 +2,7 @@ namespace Polly.CircuitBreaker; -internal class CircuitBreakerEngine +internal static class CircuitBreakerEngine { internal static TResult Implementation( Func action, diff --git a/src/Polly/CircuitBreaker/ConsecutiveCountCircuitController.cs b/src/Polly/CircuitBreaker/ConsecutiveCountCircuitController.cs index a498c208f91..7f362d87d3d 100644 --- a/src/Polly/CircuitBreaker/ConsecutiveCountCircuitController.cs +++ b/src/Polly/CircuitBreaker/ConsecutiveCountCircuitController.cs @@ -1,6 +1,6 @@ namespace Polly.CircuitBreaker; -internal class ConsecutiveCountCircuitController : CircuitStateController +internal sealed class ConsecutiveCountCircuitController : CircuitStateController { private readonly int _exceptionsAllowedBeforeBreaking; private int _consecutiveFailureCount; diff --git a/src/Polly/CircuitBreaker/HealthCount.cs b/src/Polly/CircuitBreaker/HealthCount.cs index 92a6fd8e286..d9d16fa78af 100644 --- a/src/Polly/CircuitBreaker/HealthCount.cs +++ b/src/Polly/CircuitBreaker/HealthCount.cs @@ -1,6 +1,6 @@ namespace Polly.CircuitBreaker; -internal class HealthCount +internal sealed class HealthCount { public int Successes { get; set; } diff --git a/src/Polly/CircuitBreaker/RollingHealthMetrics.cs b/src/Polly/CircuitBreaker/RollingHealthMetrics.cs index 167da0065f4..23c1d7465b3 100644 --- a/src/Polly/CircuitBreaker/RollingHealthMetrics.cs +++ b/src/Polly/CircuitBreaker/RollingHealthMetrics.cs @@ -1,7 +1,7 @@ #nullable enable namespace Polly.CircuitBreaker; -internal class RollingHealthMetrics : IHealthMetrics +internal sealed class RollingHealthMetrics : IHealthMetrics { private readonly long _samplingDuration; private readonly long _windowDuration; diff --git a/src/Polly/CircuitBreaker/SingleHealthMetrics.cs b/src/Polly/CircuitBreaker/SingleHealthMetrics.cs index e17859f6a67..3e6e6568b50 100644 --- a/src/Polly/CircuitBreaker/SingleHealthMetrics.cs +++ b/src/Polly/CircuitBreaker/SingleHealthMetrics.cs @@ -1,7 +1,7 @@ #nullable enable namespace Polly.CircuitBreaker; -internal class SingleHealthMetrics : IHealthMetrics +internal sealed class SingleHealthMetrics : IHealthMetrics { private readonly long _samplingDuration; diff --git a/src/Polly/Fallback/AsyncFallbackEngine.cs b/src/Polly/Fallback/AsyncFallbackEngine.cs index b0e9e48c740..79a58554b32 100644 --- a/src/Polly/Fallback/AsyncFallbackEngine.cs +++ b/src/Polly/Fallback/AsyncFallbackEngine.cs @@ -1,7 +1,7 @@ #nullable enable namespace Polly.Fallback; -internal class AsyncFallbackEngine +internal static class AsyncFallbackEngine { internal static async Task ImplementationAsync( Func> action, diff --git a/src/Polly/Utilities/TimedLock.cs b/src/Polly/Utilities/TimedLock.cs index da5055fd2d1..582c99c5abf 100644 --- a/src/Polly/Utilities/TimedLock.cs +++ b/src/Polly/Utilities/TimedLock.cs @@ -68,7 +68,7 @@ public void Dispose() #if DEBUG // (In Debug mode, we make it a class so that we can add a finalizer // in order to detect when the object is not freed.) - private class Sentinel + private sealed class Sentinel { #if NETSTANDARD2_0 ~Sentinel() @@ -85,7 +85,7 @@ private class Sentinel #endif } -internal class LockTimeoutException : Exception +internal sealed class LockTimeoutException : Exception { /// /// Initializes a new instance of the class.