.NET 向け TOML パーサーです。 v0.3.0, 0.3.1, 0.4.0 に対応しています。
- LINQ to XML で TOML を操作することが出来ます
- DynamicJson 互換の API で操作することが出来ます
- DataContractJsonSerializer を用いてシリアライズ / デシリアライズが行えます(ラップ済み)
- .NET Framework 4.0 - 4.5
その他のプラットフォームについては要望次第で調査します。いまのところ PCL にしたらビルド通らなくてやる気なくした。
PM> Install-Package HyperTomlProcessor
Toml.DeserializeXElement メソッドを使用して TOML 文字列またはストリームから XElement に変換します。
変換された XElement とその子・孫要素には type と toml という属性がついています。
type 属性は JsonReaderWriterFactory のものと互換性があります。
toml 属性の値は内容によって BasicString, MultilineBasicString, LiteralString, MultilineLiteralString, Integer, Float, Boolean, Datetime, Array, Table のいずれかになります。
Toml.SerializeXElement メソッドを使用して TOML の内容を表す XElement から TOML 形式の文字列を作成します。
TOML におけるデータの種類は type 属性や toml 属性から決定します。
DataContractJsonSerializer によるシリアライズ / デシリアライズ処理をそれぞれ Toml.SerializeObject メソッド、 Toml.DeserializeObject メソッドで行えます。簡単なラッパーメソッドとなっているので動作の拡張についてはソースコードを参考にしてください。
DynamicToml クラスでは DynamicJson に似た API で TOML の内容を操作することができます。基本的には DynamicJson と同じ動作をするようになっていますが、提供しているメソッドが違うので、ドキュメントを参照してください。また XElement にキャストすることで内部で使用している XElement インスタンスを取得できます。