/// <summary> /// Sets the Cache-Control header and optionally the Expires and Vary headers. /// </summary> /// <param name="response">The <see cref="IResponse"/> instance.</param> /// <param name="cacheOptions">A <see cref="CacheOptions"/> object to specify the cache settings.</param> public static void SetCacheOptions(this IResponse response, CacheOptions cacheOptions) { if (cacheOptions == null) { return; } if (cacheOptions.Disable) { response.DisableCache(); return; } response.SetHeader(HeaderKeys.CacheControl, cacheOptions.ToHeaderString()); if (cacheOptions.AbsoluteExpiry.HasValue) { response.SetHeader(HeaderKeys.Expires, cacheOptions.AbsoluteExpiry.Value.ToString("R")); } if (cacheOptions.VaryByHeaders != null && cacheOptions.VaryByHeaders.Count > 0) { response.SetHeader(HeaderKeys.Vary, string.Join(", ", cacheOptions.VaryByHeaders)); } }
/// <summary> /// Sets the Cache-Control header and optionally the Expires and Vary headers. /// </summary> /// <param name="response">The <see cref="IResponse"/> instance.</param> /// <param name="cacheOptions">A <see cref="CacheOptions"/> object to specify the cache settings.</param> public static void SetCacheOptions(this IResponse response, CacheOptions cacheOptions) { if (cacheOptions == null) return; if (cacheOptions.Disable) { response.DisableCache(); return; } response.SetHeader(HeaderKeys.CacheControl, cacheOptions.ToHeaderString()); if (cacheOptions.AbsoluteExpiry.HasValue) { response.SetHeader(HeaderKeys.Expires, cacheOptions.AbsoluteExpiry.Value.ToString("R")); } if (cacheOptions.VaryByHeaders != null && cacheOptions.VaryByHeaders.Count > 0) { response.SetHeader(HeaderKeys.Vary, string.Join(", ", cacheOptions.VaryByHeaders)); } }