ConfigurationReloadToken
Propagates notifications that a configuration change has occurred.
using Microsoft.Extensions.Internal;
using Microsoft.Extensions.Primitives;
using System;
using System.Runtime.CompilerServices;
using System.Threading;
namespace Microsoft.Extensions.Configuration
{
public class ConfigurationReloadToken : IChangeToken
{
private readonly CancellationTokenSource _cts = new CancellationTokenSource();
public bool ActiveChangeCallbacks { get; set; } = true;
public bool HasChanged => _cts.IsCancellationRequested;
[System.Runtime.CompilerServices.NullableContext(1)]
public IDisposable RegisterChangeCallback([System.Runtime.CompilerServices.Nullable(new byte[] {
1,
2
})] Action<object> callback, [System.Runtime.CompilerServices.Nullable(2)] object state)
{
return Microsoft.Extensions.Internal.ChangeCallbackRegistrar.UnsafeRegisterChangeCallback(callback, state, _cts.Token, delegate(ConfigurationReloadToken s) {
s.ActiveChangeCallbacks = false;
}, this);
}
public void OnReload()
{
_cts.Cancel();
}
}
}