ConfigureBuilderContext<TKey>
The context used by  ResiliencePipelineRegistry<T>.
            
                using Polly.Utils;
using System;
using System.Collections.Generic;
using System.Runtime.CompilerServices;
using System.Threading;
namespace Polly.Registry
{
    [System.Runtime.CompilerServices.NullableContext(1)]
    [System.Runtime.CompilerServices.Nullable(0)]
    public class ConfigureBuilderContext<TKey>
    {
        public TKey PipelineKey { get; }
        internal string BuilderName { get; }
        [System.Runtime.CompilerServices.Nullable(2)]
        [field: System.Runtime.CompilerServices.Nullable(2)]
        internal string BuilderInstanceName {
            [System.Runtime.CompilerServices.NullableContext(2)]
            get;
        }
        internal List<CancellationToken> ReloadTokens { get; } = new List<CancellationToken>();
        internal List<Action> DisposeCallbacks { get; } = new List<Action>();
        internal ConfigureBuilderContext(TKey strategyKey, string builderName, [System.Runtime.CompilerServices.Nullable(2)] string builderInstanceName)
        {
            PipelineKey = strategyKey;
            BuilderName = builderName;
            BuilderInstanceName = builderInstanceName;
        }
        public void AddReloadToken(CancellationToken cancellationToken)
        {
            if (cancellationToken.CanBeCanceled && !cancellationToken.IsCancellationRequested)
                ReloadTokens.Add(cancellationToken);
        }
        public void OnPipelineDisposed(Action callback)
        {
            Guard.NotNull<Action>(callback, "callback");
            DisposeCallbacks.Add(callback);
        }
    }
}