LoginSignup
5
5

More than 5 years have passed since last update.

YamlDotNetを使って詰まったところなどメモ

Last updated at Posted at 2015-09-28

YamlDotNetとは

YamlをC#クラスに流し込むときに便利なライブラリ

VS2015のNuGetで YamlDotNet , YamlDotNet.Dynamic , YamlDotNet.Signedの3つをインストールすれば使えるようになります。
(2015/09/17現在)
image

参考

YamlDotNet
http://aaubry.net/pages/yamldotnet.html

C#でYAMLを使えるか試してみたAdd Star
http://opcdiary.net/?p=25878

YamlDotNet - Deserializing an object graph by Antoine Aubry
https://dotnetfiddle.net/HD2JXM

YamlDotNetを使っていて気づいたこと・詰まったところなどのメモ

・YAMLにあるキーの左隣の空白が半角スペース12個、インデントは半角スペース4個になっていないとデシリアライズに失敗する

・C#クラスのメンバ変数の型と対応するYAMLの値の型が異なるとデシリアライズに失敗する

・YAMLにあるキーの名前と同じ名前のpublic変数が無いとデシリアライズに失敗する.

ただし、YamlAlias属性を変数につけると名前が異なるYAMLキーとC#変数を結びつけることができる。

以下の二つは同じものであると解釈されるみたいです。

[YamlAlias("in")]
public int inParam;
public int in;

inなどのC#予約語を使いたいときなんかは便利ですね。

・yamlの末尾に...をつける必要はない(つけていたほうが安全かも)

・値yes,noはstringと解釈される。 (C#クラス側の変数の型をboolにするとデシリアライズ失敗)

・デシリアライズしたいクラスの中に別のクラス・メソッドなどを定義してもOK

・YAMLのキーの並び順とC#クラスの変数の並び順番は異なっていてもOK

5
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
5