A EasyConfig é uma biblioteca simples para leitura e salvamento de configurações localmente em arquivos JSON. Ela fornece dois métodos principais: Read e Save, que permitem gerenciar configurações de forma prática e eficiente.
- Descrição: Lê as configurações de um arquivo JSON localizado no caminho especificado.
- Parâmetros:
path(string): O caminho do arquivo que contém as configurações em formato JSON.validate(opcional): Um predicado (Predicate<T>) que define as condições que o objeto desserializado deve atender. Se a validação falhar, uma exceçãoArgumentExceptionserá lançada.encryptionKey(opcional): Especifica uma chave usada para descriptografar o arquivo de configuração durante a leitura. Este parâmetro é necessário apenas se o arquivo estiver criptografado, e precisa ser a mesma chave utilizada na criptografia.
- Retorno:
- Retorna um objeto do tipo genérico
T, contendo os dados deserializados. - Caso o arquivo não exista ou o conteúdo esteja inválido, retorna
null.
- Retorna um objeto do tipo genérico
- Restrições:
- O tipo
Tdeve ser uma classe (where T : class).
- O tipo
- Descrição: Lê assincronamente as configurações de um arquivo JSON localizado no caminho especificado.
- Parâmetros:
path(string): O caminho do arquivo que contém as configurações em formato JSON.validate(opcional): Um predicado (Predicate<T>) que define as condições que o objeto desserializado deve atender. Se a validação falhar, uma exceçãoArgumentExceptionserá lançada.encryptionKey(opcional): Especifica uma chave usada para descriptografar o arquivo de configuração durante a leitura. Este parâmetro é necessário apenas se o arquivo estiver criptografado, e precisa ser a mesma chave utilizada na criptografia.
- Retorno:
- Retorna um objeto do tipo genérico
T, contendo os dados deserializados. - Caso o arquivo não exista ou o conteúdo esteja inválido, retorna
null.
- Retorna um objeto do tipo genérico
- Restrições:
- O tipo
Tdeve ser uma classe (where T : class).
- O tipo
- Descrição: Salva as configurações fornecidas em um arquivo JSON no caminho especificado.
- Parâmetros:
config(T): O objeto que será serializado e salvo no arquivo.path(string): O caminho onde o arquivo JSON será salvo.encryptionKey(opcional) Especifica uma chave usada para criptografar o arquivo de configuração durante a escrita. Este parâmetro é necessário apenas se deseja criptografar os dados que serão salvos no arquivo.
- Comportamento:
- Cria o arquivo JSON se ele não existir.
- Sobrescreve o conteúdo do arquivo, se ele já existir.
- Descrição: Salva assincronamente as configurações fornecidas em um arquivo JSON no caminho especificado.
- Parâmetros:
config(T): O objeto que será serializado e salvo no arquivo.path(string): O caminho onde o arquivo JSON será salvo.encryptionKey(opcional) Especifica uma chave usada para criptografar o arquivo de configuração durante a escrita. Este parâmetro é necessário apenas se deseja criptografar os dados que serão salvos no arquivo.
- Comportamento:
- Cria o arquivo JSON se ele não existir.
- Sobrescreve o conteúdo do arquivo, se ele já existir.
// Definindo o modelo de configuração
public class AppConfig
{
public string AppName { get; set; }
public int Version { get; set; }
}
// Lendo configurações de um arquivo JSON
var config = Config<AppConfig>.Read("config.json");
if (config != null)
{
Console.WriteLine($"App Name: {config.AppName}, Version: {config.Version}");
}
else
{
Console.WriteLine("Configuração não encontrada ou inválida.");
}
// Gravando configurações em um arquivo JSON
AppConfig config = new(){
AppName = "Teste",
Version = 1
};
Config<AppConfig>.Save("config.json", config);