using System.Diagnostics.CodeAnalysis;
namespace PCL.Core.App.Configuration;
public interface IConfigProvider
{
///
/// 获取一个值。
///
/// 键
/// 返回值,若不存在则为该类型默认值
/// 上下文参数
/// 值的类型
/// 值是否存在,若存在则为 true
public bool GetValue(string key, [NotNullWhen(true)] out T? value, object? argument = null);
///
/// 设置一个值。
///
/// 键
/// 新值
/// 上下文参数
/// 值的类型
public void SetValue(string key, T value, object? argument = null);
///
/// 删除一个值。
///
/// 键
/// 上下文参数
public void Delete(string key, object? argument = null);
///
/// 判断一个值是否存在。
///
/// 键
/// 上下文参数
/// 值是否存在,若存在则为 true
public bool Exists(string key, object? argument = null);
}