You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Zero/ZeroLevel/Services/DependencyInjection/Contracts/IParameterStorage.cs

73 lines
3.4 KiB

6 years ago
using System;
namespace ZeroLevel.Patterns.DependencyInjection
{
/// <summary>
/// Интерфейс с методами для реализации хранения параметров
/// (хранилище ключ-значение, где в качестве ключа используется сущность типа string, а в качестве значения объект любого типа)
/// </summary>
public interface IParameterStorage
{
#region IEverythingStorage
/// <summary>
/// Сохранение параметра
/// </summary>
/// <typeparam name="T">Тип параметра</typeparam>
/// <param name="key">Ключ</param>
/// <param name="value">Значение параметра</param>
void Save<T>(string key, T value);
/// <summary>
/// Сохранение или обновление параметра
/// </summary>
/// <typeparam name="T">Тип параметра</typeparam>
/// <param name="key">Ключ</param>
/// <param name="value">Значение параметра</param>
void SaveOrUpdate<T>(string key, T value);
/// <summary>
/// Безопасное сохранение параметра
/// </summary>
/// <typeparam name="T">Тип параметра</typeparam>
/// <param name="key">Ключ</param>
/// <param name="value">Значение параметра</param>
/// <returns>true - в случае успеха</returns>
bool TrySave<T>(string key, T value);
/// <summary>
/// Удаление параметра
/// </summary>
/// <typeparam name="T">Тип параметра</typeparam>
/// <param name="key">Ключ</param>
void Remove<T>(string key);
/// <summary>
/// Безопасное удаление параметра
/// </summary>
/// <typeparam name="T">Тип параметра</typeparam>
/// <param name="key">Ключ</param>
/// <returns>true - в случае успеха</returns>
bool TryRemove<T>(string key);
/// <summary>
/// Запрос сохраненного параметра
/// </summary>
/// <typeparam name="T">Тип параметра</typeparam>
/// <param name="key">Ключ</param>
/// <returns>Значение параметра</returns>
T Get<T>(string key);
T GetOrDefault<T>(string key);
T GetOrDefault<T>(string key, T defaultValue);
/// <summary>
/// Запрос сохраненного параметра
/// </summary>
/// <param name="type">Тип параметра</param>
/// <param name="key">Ключ</param>
/// <returns>Значение параметра</returns>
object Get(Type type, string key);
/// <summary>
/// Проверка наличия параметра с указанным именем
/// </summary>
/// <typeparam name="T">Тип параметра</typeparam>
/// <param name="key">Ключ</param>
/// <returns>Указывает наличие параметра с заданным именем</returns>
bool Contains<T>(string key);
#endregion
}
}

Powered by TurnKey Linux.