using System;
namespace ZeroLevel.Patterns.DependencyInjection
{
///
/// DI parameters stogare (string key and anytype value)
///
public interface IParameterStorage
{
#region IEverythingStorage
///
/// Save parameter
///
/// Parameter type
/// Key
/// Parameter value
void Save(string key, T value);
///
/// Save or update parameter
///
/// Parameter type
/// Key
/// Parameter value
void SaveOrUpdate(string key, T value);
///
/// Safe save parameter
///
/// Parameter type
/// Key
/// Parameter value
bool TrySave(string key, T value);
///
/// Remove parameter by key
///
/// Parameter type
/// Key
void Remove(string key);
///
/// Safe remove parameter by key
///
/// Parameter type
/// Key
bool TryRemove(string key);
///
/// Get parameter value by key
///
/// Parameter type
/// Key
/// Parameter value
T Get(string key);
T GetOrDefault(string key);
T GetOrDefault(string key, T defaultValue);
///
/// Get parameter value by key
///
/// Parameter type
/// Key
/// Parameter value
object Get(Type type, string key);
///
/// Check for parameter existence by key
///
/// Parameter type
/// Key
bool Contains(string key);
#endregion IEverythingStorage
}
}