Существует ли простой механизм для сохранения имущества в течение ограниченного периода времени. net? - PullRequest
0 голосов
/ 14 января 2020

Я хотел бы установить свойство на X минут. По истечении этого периода он должен возвращать ноль или срок его действия истек.

Есть ли в C#?

какой-либо простой механизм, например:

  private static TimeCache<LoginData> _session;

  private void Login() {
    ...
    _session.Set(ws.Login());
  }

  private void DoStuff() {
    if (_session.Expired)
      Login()
    ...
  }

Ответы [ 2 ]

1 голос
/ 14 января 2020

Вы можете создать для этого простой класс.

class ExpiringValue<T>
{
    protected T _value;
    protected DateTime _expiration;

    public ExpiringValue(T val, DateTime expiration)
    {
        _value = val;
        _expiration = expiration;
    }

    public T Value => _expiration < DateTime.Now ? default(T) : _value;
}

Чтобы использовать его, вы можете сделать что-то такое:

var message = new ExpiringValue<string>("Hello world", DateTime.Now.AddSeconds(10));

Console.WriteLine("The message is set to {0}", message.Value);
0 голосов
/ 14 января 2020

Вы можете использовать Таймер событие OnTimedEvent для сброса вашей собственности, но помните о безопасности потока вашей собственности.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...