Class LocalCache<TKey, TValue>

Generic key to value cache This class is threadsafe

Implements
System.IDisposable
Inherited Members
System.Object.ToString()
System.Object.Equals(System.Object)
System.Object.Equals(System.Object, System.Object)
System.Object.ReferenceEquals(System.Object, System.Object)
System.Object.GetHashCode()
System.Object.GetType()
System.Object.MemberwiseClone()
Namespace: EPiServer.Data.Cache
Assembly: EPiServer.Data.dll
Version: 8.11.0
Syntax
public class LocalCache<TKey, TValue> : IDisposable
Type Parameters
Name Description
TKey

The type of key to access the cache

TValue

The type of value to store in the cache

Constructors

LocalCache()

Initializes a new instance of the LocalCache<TKey, TValue> class that is empty and has the default initial capacity

Declaration
public LocalCache()

LocalCache(IEqualityComparer<TKey>)

Initializes a new instance of the LocalCache<TKey, TValue> class that is empty and has the equality comparer passed

Declaration
public LocalCache(IEqualityComparer<TKey> comparer)
Parameters
Type Name Description
System.Collections.Generic.IEqualityComparer<TKey> comparer

LocalCache(Int32)

Initializes a new instance of the LocalCache<TKey, TValue> class that is empty and has the specified initial capacity

Declaration
public LocalCache(int capacity)
Parameters
Type Name Description
System.Int32 capacity

The initial number of elements that the LocalCache<TKey, TValue> can contain.

Exceptions
Type Condition
System.ArgumentOutOfRangeException

capacity is less than 0

Properties

Item[TKey]

Gets or sets the value associated with the specified key.

Declaration
public virtual TValue this[TKey key] { get; set; }
Parameters
Type Name Description
TKey key

The key of the value to get or set

Property Value
Type Description
TValue

The value associated with the specified key. If the specified key is not found, a get operation throws a System.Collections.Generic.KeyNotFoundException, and a set operation creates a new element or overwrites any existing value for the specified key.

Exceptions
Type Condition
System.ArgumentNullException

key is null>

System.Collections.Generic.KeyNotFoundException

The Get operation is called and key does not exist in the collection.

Methods

Add(TKey, TValue)

Adds the specified key and value to the cache

Declaration
public virtual void Add(TKey key, TValue value)
Parameters
Type Name Description
TKey key

The key of the element to add

TValue value

The value of the element to add

Exceptions
Type Condition
System.ArgumentNullException

Key is null

System.ArgumentException

An element with the same key already exists in the cache

Add(TKey, Boolean, Boolean, Func<TValue>)

Creates a new element or overwrites any existing value for the specified key

Declaration
public virtual TValue Add(TKey key, bool cacheNullValues, bool overwriteExistingValue, Func<TValue> action)
Parameters
Type Name Description
TKey key

The key of the value to set

System.Boolean cacheNullValues

Specifies if null values returned from the delegate should be stored in the cache

System.Boolean overwriteExistingValue
true
if an existing value in the cache should be updated with the new value, otherwise
false
System.Func<TValue> action

A delegate to generate the value to set in the cache

Returns
Type Description
TValue

The value generated by the delegate

Exceptions
Type Condition
System.ArgumentNullException

Key is null

Clear()

Clears the cache of all keys and values

Declaration
public virtual void Clear()

ContainsKey(TKey)

Determines whether the cache contains the specified key.

Declaration
public virtual bool ContainsKey(TKey key)
Parameters
Type Name Description
TKey key

The key to locate in the cache

Returns
Type Description
System.Boolean
true
if the cache contains an element with the specified key; otherwise,
false
.
Exceptions
Type Condition
System.ArgumentNullException

key is null>

Dispose()

Declaration
public void Dispose()

Dispose(Boolean)

Declaration
protected virtual void Dispose(bool disposing)
Parameters
Type Name Description
System.Boolean disposing

InternalSet(TKey, TValue)

Declaration
protected virtual void InternalSet(TKey key, TValue value)
Parameters
Type Name Description
TKey key
TValue value

Remove(TKey)

Remove an item from the cache

Declaration
public virtual void Remove(TKey key)
Parameters
Type Name Description
TKey key

The key of the value to remove

Exceptions
Type Condition
System.ArgumentNullException

key is null>

ShallowCopy()

Does a shallow copy of the items.

Declaration
public Dictionary<TKey, TValue> ShallowCopy()
Returns
Type Description
System.Collections.Generic.Dictionary<TKey, TValue>

A shallow copy of the items

TryGetValue(TKey, out TValue)

Gets the value associated with the specified key.

Declaration
public virtual bool TryGetValue(TKey key, out TValue value)
Parameters
Type Name Description
TKey key

The key of the value to get

TValue value

When this method returns, contains the value associated with the specified key, if the key is found; otherwise, the default value for the type of the value parameter. This parameter is passed uninitialized

Returns
Type Description
System.Boolean
true
if the cache contains an element with the specified key; otherwise,
false
.
Exceptions
Type Condition
System.ArgumentNullException

key is null>

ValidateKey(TKey)

Declaration
protected virtual void ValidateKey(TKey key)
Parameters
Type Name Description
TKey key

ValidateValue(TValue)

Declaration
protected virtual void ValidateValue(TValue value)
Parameters
Type Name Description
TValue value

Implements

System.IDisposable

Extension Methods