Работа с файлом настроек, конфигураций для программ на C#

SharpConfig — простая в использовании библиотека для работы с файлом настроек и конфигураций.
Сайт библиотеки SharpConfig

Вы можете использовать данную библиотеку в своих .NET приложениях для чтения, модификации и создания конфигураций, настроек в файлах (.cfg, .ini) или потоках в текстовом или бинарном виде.

Пример файла настроек:

[General]
# Комментарий
; второй комментарий
SomeInteger = 10 # также комментарий
SomeFloat = 20.05
ABoolean = true

Чтение этих настроек в C# будет выглядеть следующим образом:

Configuration config = Configuration.Load("sample.cfg");
SettingCategory category = config["General"];

int someInteger = category["SomeInteger"].GetValue<int>();
float someFloat = category["SomeFloat"].GetValue<float>();

Перечисления

SahrpConfig также поддерживает разбор(парсинг) перечислений, например:

[DateInfo]
Day = Monday

Теперь значение Day можно прочитать, как System.DayOfWeek, так как оно содержится в перечислении:

DayOfWeek day = config["DateInfo"]["Day"].GetValue<DayOfWeek>();

Массивы

Массивы также поддерживаются библиотекой:

[General]
MyArray = [0,2,5,6]

Тип такого массива может быть интерпретирован, как укажет разработчик. Значения 0,2,5,6 могут быть к примеру типами nt, float, double, char, byte, string:

SettingCategory category = config["General"];
Setting setting = category["MyArray"];

int[] intArray = setting.GetValueArray<int>();
float[] floatArray = setting.GetValueArray<float>();
string[] stringArray = setting.GetValueArray<string>();

Назначения, соответствие

Особенностью библиотеки является назначение категорий и свойств.
Представим , что у нас есть следующая структура:

struct PersonInfo
{
    public string Name { get; set; }
    public int Age { get; set; }
    public Gender Gender { get; set; }
}

enum Gender
{
    Male,
    Female
}

Можно прочитать весь объект прямо из файла конфигурации:

[Person]
Name = Peter
Age = 99
Gender = Female

Следующим образом:

PersonInfo person = new PersonInfo();
person = config["Person"].AssignTo(person);

И да, перечисления автоматически сконвертируются.

Замечение: Назначения работают только с public свойствами и основными типами, такими как bool,int, enum и т.д.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *