using System; using System.Collections.Generic; using System.Text; using JiShe.CollectBus.Protocol.Contracts.Interfaces; using Microsoft.Extensions.Caching.Distributed; namespace JiShe.CollectBus.Protocol.Contracts.Abstracts { public abstract class BaseProtocolPlugin:IProtocolPlugin { private readonly IDistributedCache _cache; protected BaseProtocolPlugin(IDistributedCache cache) { _cache = cache; } public abstract Models.Protocol Get(); public abstract void Received(); public abstract void Send(); public void Load() { var result = _cache.GetString("myKey"); if (result == null) { result = "Calculated Data"; _cache.SetString("myKey", result, new DistributedCacheEntryOptions { AbsoluteExpirationRelativeToNow = TimeSpan.FromMinutes(10) }); } } } }