public MemoryCacheTenantResolver(
     IMultitenancyOptionsProvider <TTenant> multitenancyOptionsProvider,
     IMemoryCache cache,
     Logging.LibLog.ILog log,
     MemoryCacheTenantResolverOptions options)
 {
     this.log     = log ?? throw new ArgumentNullException($"Argument {nameof(log)} must not be null");
     this.cache   = cache ?? throw new ArgumentNullException($"Argument {nameof(cache)} must not be null");
     this.options = options ?? throw new ArgumentNullException($"Argument {nameof(options)} must not be null");
     this.multitenancyOptionsProvider = multitenancyOptionsProvider ?? throw new ArgumentNullException($"Argument {nameof(multitenancyOptionsProvider)} must not be null");
 }
 public MemoryCacheTenantResolver(IMultitenancyOptionsProvider <TTenant> multitenancyOptionsProvider, IMemoryCache cache, Logging.LibLog.ILog log)
     : this(multitenancyOptionsProvider, cache, log, new MemoryCacheTenantResolverOptions())
 {
 }