В настоящее время я реализую некоторые услуги на основе дизайна UserManger Asp.Net Core Identity. В реализации мне было интересно, как менеджер пользователей может поддерживать отмену, если нет возможности передать токен отмены в методы UserManager.
Я также видел, что внутри менеджера пользователей есть свойство токена отмены (со значением по умолчанию), которое используется им внутри и передается используемым асинхронным методам. Но это свойство недоступно из-за его уровня защиты
protected virtual CancellationToken CancellationToken => CancellationToken.None;
Как я могу передать свой токен отмены, который я использую в своем контроллере, например, в диспетчере пользователей? Должен ли я перегружать его и передавать в него новым методом?
public class MyUserManager : UserManager<MyUser>
{
/* ... Other stuff... */
protected override CancellationToken CancellationToken {get;set;}
public void SetCancellationToken(CancellationToken cancellationToken)
{
this.CancellationToken = cancellationToken;
}
}
Это правильный способ выполнить отмену с помощью userManager ? В случае положительного ответа: почему это отличается от других компонентов, где используются CancellationTokens, например EF Core, где вы должны передать CancellationToken через параметр метода?