Class CacheStoreUtilities
Provides utility methods for working with the data store and cache.
Inheritance
Inherited Members
Namespace: Terrasoft.Core.Store
Assembly: Terrasoft.Core.dll
Syntax
public static class CacheStoreUtilities
Methods
AdjustRawGetValuesResult(IEnumerable<String>, IDictionary<String, Object>)
Проверяет переданный словарь со значениями на присутствие в нем значений с заданными ключами.
Declaration
public static IDictionary<string, object> AdjustRawGetValuesResult(IEnumerable<string> keys, IDictionary<string, object> rawGetValuesResult)
Parameters
Type | Name | Description |
---|---|---|
System.Collections.Generic.IEnumerable<System.String> | keys | Список ключей, наличие которых проверяется в словаре
|
System.Collections.Generic.IDictionary<System.String, System.Object> | rawGetValuesResult | Словарь, в котором проверяется наличие значений с ключами
|
Returns
Type | Description |
---|---|
System.Collections.Generic.IDictionary<System.String, System.Object> | Словарь со значениями для ключей |
ExpireGroup(ICacheStore, String)
Устанавливает признак устаревания для заданной группы элементов кэша.
Declaration
public static void ExpireGroup(this ICacheStore source, string groupName)
Parameters
Type | Name | Description |
---|---|---|
ICacheStore | source | Кэш. |
System.String | groupName | Имя группы элементов. |
GetRootStore(ICacheStore)
Возвращает корневой кэш.
Declaration
public static ICacheStore GetRootStore(this ICacheStore source)
Parameters
Type | Name | Description |
---|---|---|
ICacheStore | source | Кэш. |
Returns
Type | Description |
---|---|
ICacheStore | Корневой кэш. |
Remarks
Метод продвигается по цепочке прокси-объектов, начиная от source
, пока не
достигнет самого первого (корневого) кэша.
GetRootStore(IDataStore)
Возвращает корневое хранилище данных.
Declaration
public static IDataStore GetRootStore(this IDataStore source)
Parameters
Type | Name | Description |
---|---|---|
IDataStore | source | Хранилище данных. |
Returns
Type | Description |
---|---|
IDataStore | Корневое хранилище данных. |
Remarks
Метод продвигается по цепочке прокси-объектов, начиная от source
, пока не
достигнет самого первого (корневого) хранилища данных.
GetValue<T>(IBaseStore, String)
Получает из хранилища данных или кэша значение по ключу key
и приводит
полученное значение к заданному типу. Если значение по ключу не найдено, метод возвращает null
.
Declaration
public static T GetValue<T>(this IBaseStore source, string key)
where T : class
Parameters
Type | Name | Description |
---|---|---|
IBaseStore | source | Хранилище данных или кэш. |
System.String | key | Ключ значения. |
Returns
Type | Description |
---|---|
T | Значение по ключу |
Type Parameters
Name | Description |
---|---|
T | Тип, к которому приводится значение, получаемое из хранилища/кэша. |
GetValue<T>(IBaseStore, String, T)
Получает из хранилища данных или кэша значение по ключу key
и приводит
полученное значение к заданному типу. Если значение по ключу не найдено, метод возвращает
заданное значение по умолчанию.
Declaration
public static T GetValue<T>(this IBaseStore source, string key, T defaultValue)
Parameters
Type | Name | Description |
---|---|---|
IBaseStore | source | Хранилище данных или кэш. |
System.String | key | Ключ значения. |
T | defaultValue | Значение по умолчанию, которое будет возвращено методом, если по данному ключу значение в хранилище/кэше не найдено. |
Returns
Type | Description |
---|---|
T | Значение по ключу |
Type Parameters
Name | Description |
---|---|
T | Тип, к которому приводится значение, получаемое из хранилища/кэша. |
GetValues(ICacheStore, String[])
Возвращает значения из кэша по заданному списку ключей.
Declaration
public static IDictionary<string, object> GetValues(this ICacheStore source, params string[] keys)
Parameters
Type | Name | Description |
---|---|---|
ICacheStore | source | Кэш. |
System.String[] | keys | Перечень ключей, для которых требуется получить значения. |
Returns
Type | Description |
---|---|
System.Collections.Generic.IDictionary<System.String, System.Object> | Словарь, содержащий весь список ключей и соответствующие этим ключам значения. Если значение по
определенному ключу не было найдено, то запись в словаре будет присутствовать, но ее значение будет
равно |
Pop<T>(IDataStore, String)
Получает из хранилища данных значение по ключу key
, приводит
полученное значение к заданному типу и удаляет данный ключ из хранилища.
Declaration
public static T Pop<T>(this IDataStore source, string key)
where T : class
Parameters
Type | Name | Description |
---|---|---|
IDataStore | source | Хранилище данных. |
System.String | key | Ключ значения. |
Returns
Type | Description |
---|---|
T | Значение по ключу |
Type Parameters
Name | Description |
---|---|
T | Тип, к которому приводится значение, получаемое из хранилища данных. |
SetOrRemoveValue(ICacheStore, String, Object)
Производит попытку записи значения value
в кэш по ключу key
.
В случае, если value
== null
, удаляет ключ из кэша.
Declaration
public static void SetOrRemoveValue(this ICacheStore source, string key, object value)
Parameters
Type | Name | Description |
---|---|---|
ICacheStore | source | Кэш. |
System.String | key | Ключ, по которому значение |
System.Object | value | Значение, которое записывается в кэш по ключу |
WithLocalCaching(ICacheStore)
Применяет локальное хранение данных при работе с кэшем. Каждый помещаемый в кеш элемент будет иметь свой собственный признак актуальности.
Declaration
public static ICacheStore WithLocalCaching(this ICacheStore source)
Parameters
Type | Name | Description |
---|---|---|
ICacheStore | source | Кэш. |
Returns
Type | Description |
---|---|
ICacheStore | Кеш-обертка, осуществляющая локальное хранение данных и проверку признака актуальности данных в первоначальном кеше. Признак актуальности проверяется при каждом обращении к объекту. |
Remarks
Рекомендуется использовать только в случае работы с кэшем с относительно "дорогим" доступом (например, кэш с доступом по сети) и при значительных объемах кэшируемых элементов.
WithLocalCaching(ICacheStore, String)
Применяет локальное хранение данных при работе с кэшем.
Declaration
public static ICacheStore WithLocalCaching(this ICacheStore source, string groupName)
Parameters
Type | Name | Description |
---|---|---|
ICacheStore | source | Кэш. |
System.String | groupName | Имя группы элементов для контроля актуальности. Все элементы, которые помещаются в данную группу будут терять актуальность при вызове метода ExpireGroup(ICacheStore, String). |
Returns
Type | Description |
---|---|
ICacheStore | Кэш-обертка, осуществляющая локальное хранение данных и проверку признака актуальности данных в первоначальном кэше. Признак актуальности проверяется при каждом обращении к объекту. |
Remarks
Рекомендуется использовать только в случае работы с кэшем с относительно "дорогим" доступом (например, кэш с доступом по сети) и при значительных объемах кэшируемых элементов.
WithLocalCachingOnly(ICacheStore, String, Boolean)
Осуществляет локальное хранение данных с мониторингом актуальности данных с использованием указанного (глобального) кэша.
Declaration
public static ICacheStore WithLocalCachingOnly(this ICacheStore source, string groupName, bool ignoreUserIdentity = false)
Parameters
Type | Name | Description |
---|---|---|
ICacheStore | source | Кэш. |
System.String | groupName | Имя группы элементов для контроля актуальности. Все элементы, которые помещаются в данную группу, будут терять актуальность при вызове метода ExpireGroup(ICacheStore, String). |
System.Boolean | ignoreUserIdentity | Признак участия имени текущего пользователя в формировании ключа доступа к кэшу. |
Returns
Type | Description |
---|---|
ICacheStore | Кэш-обертка, осуществляющая локальное хранение данных и проверку признака актуальности данных в первоначальном кэше. Признак актуальности проверяется при каждом обращении к объекту. |
Remarks
Сами данные в кэш не передаются - в кэше проверяется только признак актуальности данных. Элементы в локальном кэше теряют актуальность только при вызове метода ExpireGroup(ICacheStore, String), но не при записи нового объекта в кэш.
Exceptions
Type | Condition |
---|---|
System.ArgumentException | Если в качестве параметра |