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