AppSettingsKit 8.6.4
dotnet add package AppSettingsKit --version 8.6.4
NuGet\Install-Package AppSettingsKit -Version 8.6.4
<PackageReference Include="AppSettingsKit" Version="8.6.4" />
<PackageVersion Include="AppSettingsKit" Version="8.6.4" />
<PackageReference Include="AppSettingsKit" />
paket add AppSettingsKit --version 8.6.4
#r "nuget: AppSettingsKit, 8.6.4"
#:package AppSettingsKit@8.6.4
#addin nuget:?package=AppSettingsKit&version=8.6.4
#tool nuget:?package=AppSettingsKit&version=8.6.4
SettingsKit
Простое хранилище настроек приложения в формате JSON. Поддерживает чтение, запись, типизированные секции, проверку существования ключей, событие изменения и очистку. Данные сохраняются в файл appsettings.local.json рядом с исполняемым файлом.
Установка
dotnet add package SettingsKit
Или через NuGet Package Manager:
Install-Package SettingsKit
Пространство имён
using SettingsKit;
Полный справочник API
Все методы находятся в статическом классе Settings. Файл настроек (appsettings.local.json) создаётся автоматически в каталоге приложения (AppContext.BaseDirectory).
Settings.Set
Сохраняет значение настройки по ключу. После сохранения вызывает событие OnChanged.
void Set(string key, object value)
| Параметр | Тип | Описание |
|---|---|---|
key |
string |
Ключ настройки |
value |
object |
Значение настройки (любой сериализуемый в JSON объект) |
Settings.Get<T>(string key)
Возвращает значение настройки по ключу. Если ключ не найден, возвращает default(T).
T? Get<T>(string key)
| Параметр | Тип | Описание |
|---|---|---|
key |
string |
Ключ настройки |
Возвращает: T? — значение настройки или значение по умолчанию для типа.
Settings.Get<T>(string key, T defaultValue)
Возвращает значение настройки по ключу. Если ключ не найден, возвращает указанное значение по умолчанию.
T Get<T>(string key, T defaultValue)
| Параметр | Тип | Описание |
|---|---|---|
key |
string |
Ключ настройки |
defaultValue |
T |
Значение по умолчанию |
Возвращает: T — значение настройки или defaultValue, если ключ не найден.
Settings.GetAll
Возвращает все сохранённые настройки в виде словаря.
Dictionary<string, object> GetAll()
Возвращает: Dictionary<string, object> — словарь всех настроек.
Settings.GetSection<T>
Возвращает секцию настроек как типизированный объект. Секция хранится как вложенный JSON-объект по указанному ключу.
T? GetSection<T>(string sectionName) where T : class
| Параметр | Тип | Описание |
|---|---|---|
sectionName |
string |
Имя секции |
Возвращает: T? — десериализованный объект секции или null, если секция не найдена.
Settings.SetSection<T>
Сохраняет объект как секцию настроек (вложенный JSON-объект).
void SetSection<T>(string sectionName, T section) where T : class
| Параметр | Тип | Описание |
|---|---|---|
sectionName |
string |
Имя секции |
section |
T |
Объект для сохранения |
Settings.Exists
Проверяет, существует ли настройка с данным ключом (не null).
bool Exists(string key)
| Параметр | Тип | Описание |
|---|---|---|
key |
string |
Ключ настройки |
Возвращает: bool — true, если настройка существует и не null.
Settings.OnChanged
Событие, вызываемое при изменении настройки через метод Set. Передаёт ключ и новое значение.
static event Action<string, object?>? OnChanged
Параметры обработчика:
string— ключ изменённой настройкиobject?— новое значение
Settings.Remove
Удаляет настройку по ключу.
void Remove(string key)
| Параметр | Тип | Описание |
|---|---|---|
key |
string |
Ключ настройки для удаления |
Settings.Clear
Удаляет все сохранённые настройки (очищает файл).
void Clear()
Сводная таблица методов
| Метод | Описание |
|---|---|
Settings.Set(key, value) |
Сохраняет значение по ключу |
Settings.Get<T>(key) |
Возвращает значение или default(T) |
Settings.Get<T>(key, defaultValue) |
Возвращает значение или defaultValue |
Settings.GetAll() |
Возвращает словарь всех настроек |
Settings.GetSection<T>(name) |
Возвращает секцию как типизированный объект |
Settings.SetSection<T>(name, obj) |
Сохраняет объект как секцию |
Settings.Exists(key) |
Проверяет существование ключа |
Settings.OnChanged |
Событие при изменении настройки |
Settings.Remove(key) |
Удаляет настройку по ключу |
Settings.Clear() |
Удаляет все настройки |
Примеры использования
Пример 1. Базовое чтение, запись и проверка существования
using SettingsKit;
// Сохранение настроек разных типов
Settings.Set("AppTitle", "Моё приложение");
Settings.Set("MaxItems", 100);
Settings.Set("IsDebug", true);
// Чтение с значением по умолчанию
string title = Settings.Get<string>("AppTitle") ?? "По умолчанию";
int maxItems = Settings.Get("MaxItems", 50);
bool debug = Settings.Get("IsDebug", false);
// Проверка существования ключа
if (Settings.Exists("AppTitle"))
{
Console.WriteLine($"Заголовок: {title}");
}
// Удаление конкретной настройки
Settings.Remove("IsDebug");
// Полная очистка
Settings.Clear();
Пример 2. Работа с типизированными секциями
using SettingsKit;
// Класс настроек подключения к БД
public class DbConfig
{
public string Server { get; set; } = "localhost";
public int Port { get; set; } = 5432;
public string Database { get; set; } = "mydb";
}
// Сохранение секции
var config = new DbConfig
{
Server = "192.168.1.10",
Port = 3306,
Database = "production"
};
Settings.SetSection("Database", config);
// Чтение секции обратно как типизированный объект
var loaded = Settings.GetSection<DbConfig>("Database");
if (loaded != null)
{
Console.WriteLine($"Сервер: {loaded.Server}:{loaded.Port}/{loaded.Database}");
}
// Можно хранить несколько секций
Settings.SetSection("UI", new { Theme = "Dark", FontSize = 14 });
Пример 3. Подписка на изменения и отображение всех настроек
using SettingsKit;
// Подписка на событие изменения
Settings.OnChanged += (key, value) =>
{
Console.WriteLine($"Настройка изменена: {key} = {value}");
// Можно обновить UI, перезагрузить конфигурацию и т.д.
};
Settings.Set("Theme", "Dark"); // Выведет: Настройка изменена: Theme = Dark
Settings.Set("FontSize", 14); // Выведет: Настройка изменена: FontSize = 14
// Получение и отображение всех настроек
var all = Settings.GetAll();
foreach (var kvp in all)
{
Console.WriteLine($"{kvp.Key}: {kvp.Value}");
}
Где хранятся настройки
Настройки автоматически сохраняются в файл appsettings.local.json в каталоге AppContext.BaseDirectory (рядом с исполняемым файлом). Формат JSON с отступами, файл можно открыть и отредактировать вручную.
Лицензия
MIT
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net8.0
- No dependencies.
NuGet packages (1)
Showing the top 1 NuGet packages that depend on AppSettingsKit:
| Package | Downloads |
|---|---|
|
ISBuilder
Information System Builder — full toolkit for building .NET 8 WinForms applications with EF Core, SQL Server. Export, CRUD, forms, charts, auth, reports, validation, themes. |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 8.6.4 | 133 | 4/12/2026 |