Class CacheableObjectResultOptions<T>
- Namespace
- Cuemon.AspNetCore.Mvc
- Assembly
- Cuemon.AspNetCore.Mvc.dll
Specifies options that is related to the ICacheableObjectResult interface.
public class CacheableObjectResultOptions<T> : IContentBasedObjectResultOptions<T>, ITimeBasedObjectResultOptions<T>, IValidatableParameterObject, IParameterObject
Type Parameters
T
- Inheritance
-
CacheableObjectResultOptions<T>
- Implements
Examples
The following example demonstrates how to configure to enable HTTP caching (ETag and Last-Modified) for a response model.
using System;
using System.Security.Cryptography;
using System.Text;
using Cuemon.AspNetCore.Mvc;
namespace MyApp.Examples;
public class CacheableObjectResultOptionsExample
{
public void Demonstrate()
{
var options = new CacheableObjectResultOptions<string>
{
ChecksumProvider = value => SHA256.HashData(Encoding.UTF8.GetBytes(value)),
WeakChecksumProvider = _ => false,
TimestampProvider = _ => DateTime.UtcNow,
ChangedTimestampProvider = _ => DateTime.UtcNow
};
options.ValidateOptions();
var data = "hello-world";
byte[] checksum = options.ChecksumProvider(data);
Console.WriteLine($"Checksum length: {checksum.Length}"); // 32 bytes (SHA256)
Console.WriteLine($"Created: {options.TimestampProvider(data)}");
}
}
Constructors
CacheableObjectResultOptions()
Initializes a new instance of the CacheableObjectResultOptions<T> class.
public CacheableObjectResultOptions()
Properties
ChangedTimestampProvider
Gets or sets the function delegate that resolves a timestamp from when the specified T was last modified, expressed as the Coordinated Universal Time (UTC).
public Func<T, DateTime> ChangedTimestampProvider { get; set; }
Property Value
- Func<T, DateTime>
The function delegate that resolves a timestamp from when the specified
Twas last modified.
ChecksumProvider
Gets or sets the function delegate that resolves a checksum defining the data integrity of the specified T.
public Func<T, byte[]> ChecksumProvider { get; set; }
Property Value
- Func<T, byte[]>
The function delegate that resolves a checksum defining the data integrity of the specified
T.
TimestampProvider
Gets or sets the function delegate that resolves a timestamp from when the specified T was first created, expressed as the Coordinated Universal Time (UTC).
public Func<T, DateTime> TimestampProvider { get; set; }
Property Value
- Func<T, DateTime>
The function delegate that resolves a timestamp from when the specified
Twas first created.
WeakChecksumProvider
Gets or sets the function delegate that resolves a value hinting whether the specified ChecksumProvider resembles a weak or a strong checksum strength.
public Func<T, bool> WeakChecksumProvider { get; set; }
Property Value
- Func<T, bool>
The function delegate that resolves a value hinting whether the specified ChecksumProvider resembles a weak or a strong checksum strength.
Methods
ValidateOptions()
Determines whether the public read-write properties of this instance are in a valid state.
public void ValidateOptions()
Remarks
This method is expected to throw exceptions when one or more conditions fails to be in a valid state.
Exceptions
- InvalidOperationException
ChecksumProvider cannot be null - or - TimestampProvider cannot be null.