📢 Webサイト閉鎖と移転のお知らせ
このWebサイトは2026年9月に閉鎖いたします。
新しい記事は移転先で追加しております。(旧サイトでは記事を追加しておりません)

ページの作成:「== 概要 == <br><br> __FORCETOC__ カテゴリ:C_Sharp
 
1行目: 1行目:
== 概要 ==
== 概要 ==
YAML (YAML Ain't Markup Language) は、人間にとって読み書きし易いデータシリアライゼーション形式である。<br>
<br>
C#でYAMLファイルを扱う場合は、一般的には、サードパーティ製ライブラリであるYamlDotNetライブラリ等を使用する。<br>
<br>
YAMLファイルの基本構造は、キーと値のペアで構成されている。<br>
これは階層構造を持つことができ、インデントを使用して表現する。<br>
<syntaxhighlight lang="yaml">
name: John Doe
age: 30
address:
  street: 123 Main St
  city: Anytown
</syntaxhighlight>
<br>
YAMLのメリットとして、JSONやXMLと比べて冗長性が低く、より直感的な記述が可能である。<br>
また、コメントを含められるため、設定ファイルとして使用する場合に説明を加えやすいという特徴がある。<br>
<br>
C#でYAMLファイルを使用する一般的なケースとしては、<br>
アプリケーション設定の管理、データのシリアライゼーション / デシリアライゼーション、構造化されたデータの保存等が挙げられる。<br>
<br>
YAMLの使用する場合は、インデントに注意が必要である。<br>
スペースの数が正確でない場合は、意図しない構造になる可能性がある。<br>
また、複雑なデータ構造を扱う場合は、カスタムクラスを定義してデシリアライズすると、より型安全なコードを記述することができる。<br>
<br>
YAMLは柔軟性が高いため、様々なデータ形式に対応できるが、セキュリティ上の懸念から、信頼できないソースからのYAMLデータを扱う場合は注意が必要である。<br>
<br><br>


== YamlDotNetライブラリ ==
==== YAMLファイルの読み込み ====
以下の例では、YamlDotNetライブラリを使用して、YAMLファイルを読み込んでいる。<br>
<syntaxhighlight lang="c#">
var deserializer = new DeserializerBuilder().Build();
var yaml        = File.ReadAllText("config.yaml");
var result      = deserializer.Deserialize<Dictionary<string, object>>(yaml);
</syntaxhighlight>
<br><br>
<br><br>