Table of Contents

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 T was 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 T was 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.

See Also