SimpleYamlConfig 1.3.1

There is a newer version of this package available.
See the version list below for details.
dotnet add package SimpleYamlConfig --version 1.3.1                
NuGet\Install-Package SimpleYamlConfig -Version 1.3.1                
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="SimpleYamlConfig" Version="1.3.1" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add SimpleYamlConfig --version 1.3.1                
#r "nuget: SimpleYamlConfig, 1.3.1"                
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install SimpleYamlConfig as a Cake Addin
#addin nuget:?package=SimpleYamlConfig&version=1.3.1

// Install SimpleYamlConfig as a Cake Tool
#tool nuget:?package=SimpleYamlConfig&version=1.3.1                

SimpleYamlConfig

SimpleYamlConfig는 YAML 형식의 설정 파일을 쉽게 관리할 수 있게 해주는 제네릭 클래스 입니다.

특징

  • YAML 파일을 자동으로 로드하고 저장합니다.
  • 설정 파일이 없을 경우 기본 설정으로 새 파일을 생성합니다.
  • 제네릭을 사용하여 다양한 설정 클래스에 적용할 수 있습니다.

주의사항

  • 설정 파일이 존재하지 않으면 기본값으로 새 파일이 생성됩니다.
  • Save() 메서드를 호출하지 않으면 변경사항이 파일에 저장되지 않습니다.
  • YAML 파일의 키 이름은 프로퍼티 이름과 일치해야 합니다 (대소문자 구분 없음).
  • YamlConfig<TClass>를 상속받은 객체의 설정파일 이름은 configPath를 설정하지 않은 경우 {TClass}의 이름입니다.

사용 방법

1. 설정 클래스 정의

먼저, YamlConfig<T>를 상속받는 설정 클래스를 정의합니다:

public class MyConfig(string? configPath = null) : YamlConfig<MyConfig>(configPath)
{
    [YamlMember(Alias = "name")]
    public string? Name { get; set; }

    [YamlMember(Alias = "age")]
    public int Age { get; set; }

    [YamlMember(Alias = "myType")]
    public MyEnum MyType { get; set; }
}

// 또는 현재 실행 경로에서 설정파일 불러오기 (./MyConfig.yaml)
public class MyConfig : YamlConfig<MyConfig>
{
    [YamlMember(Alias = "name")]
    public string? Name { get; set; }

    [YamlMember(Alias = "age")]
    public int Age { get; set; }

    [YamlMember(Alias = "myType")]
    public MyEnum MyType { get; set; }
}

2. 설정 객체 생성

// 기본 경로로 설정 파일 로드 (MyConfig.yaml)
var config = new MyConfig();

// 또는 사용자 지정 경로 사용
var customConfig = new MyConfig("path/to/custom/config.yaml");

3. 설정 값 읽기

Console.WriteLine(config.Name);

4. 설정 값 변경 및 저장

config.Name = "Mr.Kim";

// 변경된 설정 저장
config.Save();

5. 설정 값 다시 불러오기

config.Name = "Mr.Kim"
config.Save();

/*  변경된 설정 값 다시 불러오기 
    이 경우는, 일반적으로 외부에서 설정파일이 변경 되었을 때 호출함 */
    
config.Load();

6. 다른 경로로 설정 저장

config.SaveAs("path/to/new/config.yaml");
Product 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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
1.3.3 91 11/5/2024
1.3.2 74 11/5/2024
1.3.1 85 10/17/2024
1.3.0 74 10/17/2024
1.2.1 100 10/8/2024
1.2.0 128 7/17/2024
1.1.0 108 7/15/2024
1.0.0 104 7/15/2024