MochiuWiki : SUSE, EC, PCB
案内
メインページ
最近の更新
おまかせ表示
MediaWiki についてのヘルプ
ツール
リンク元
関連ページの更新状況
特別ページ
ページ情報
We ask for
Donations
検索
個人用ツール
ログイン
Toggle dark mode
名前空間
ページ
議論
表示
閲覧
ソースを閲覧
履歴を表示
C Sharpの基礎 - TOMLのソースを表示
提供: MochiuWiki : SUSE, EC, PCB
←
C Sharpの基礎 - TOML
あなたには「このページの編集」を行う権限がありません。理由は以下の通りです:
この操作は、次のグループのいずれかに属する利用者のみが実行できます:
管理者
、new-group。
このページのソースの閲覧やコピーができます。
== 概要 == TOML (Tom's Obvious, Minimal Language) は人間や機械にとって読みやすく、解析しやすい設定ファイル形式である。<br> TOMLファイルは、設定ファイルやデータ保存の効率的な方法として注目されている。<br> <br> TOMLファイルの特徴として、JSON形式よりも人間が読みやすい点が挙げられる。<br> また、XMLと比べてシンプルな構造を持ちながら、十分な表現力を備えている。<br> <br> TOMLファイルの構造は、キーと値のペアを基本としており、セクションを使用して階層構造を表現することもできる。<br> これにより、複雑な設定やデータ構造を直感的に表現することができる。<br> <br> C#でTOMLファイルを使用する場合は、一般的に、サードパーティ製ライブラリを使用する。<br> 以下に示すライブラリを使用することにより、TOMLファイルの読み書きを簡単に行うことができる。<br> * Tomlyn *: ライセンス : [[その他_-_ソフトウェアライセンス#2条項BSDライセンス|2条項BSDライセンス]] *: URL : https://github.com/xoofx/Tomlyn * Tommy *: ライセンス : [[その他_-_ソフトウェアライセンス#MIT_License|MITライセンス]] *: URL : https://github.com/dezhidki/Tommy * Tomlet *: ライセンス : [[その他_-_ソフトウェアライセンス#MIT_License|MITライセンス]] *: URL : https://github.com/SamboyCoding/Tomlet * Nett (ただし、2020年以降は開発が停止) *: ライセンス : [[その他_-_ソフトウェアライセンス#MIT_License|MITライセンス]] *: URL : https://github.com/paiden/Nett <br> C#でTOMLファイルを読み込む場合は、ファイルを開いて内容を解析して、その結果をオブジェクトとして扱う。<br> 逆に、C#のオブジェクトをTOML形式で書き込むこともできる。<br> <br> C#プロジェクトでTOMLファイルを使用するメリットを以下に示す。<br> * 設定ファイルの管理が容易になる。 * データの構造化が簡単である。 * 他の言語やプラットフォームとの互換性が高い。 <br> ただし、TOMLファイルはまだJSONファイルほど広く採用されているわけではないため、チーム内での合意やプロジェクトの要件に合わせて採用を検討する必要がある。<br> <br> TOMLファイルの処理を効率的に行うためには、適切なライブラリの選択とTOML形式の特性を理解することが重要である。<br> <br> TOMLの採用を検討することにより、より効率的な設定管理やデータ処理が可能になる。<br> <br><br> == TOMLの構文 == TOMLファイルの主な構文要素を以下に示す。<br> <br> * キーと値のペア *: 基本的な形式は、<code><キー名> = <値></code> である。 *: 例: <code>name = "TOML Example"</code> *: <br> * 文字列 ** 基本文字列 **: ダブルクォートで囲む **: <code>"Hello"</code> ** リテラル文字列 **: シングルクォートで囲む **: <code>'C:\Users\username'</code> *: <br> * 数値 ** 整数 **: <code>42</code> ** 浮動小数点 **: <code>3.14</code> *: <br> * ブーリアン *: true または false *: <br> * 日付と時刻 *: ISO 8601形式を使用する。 *: 例: <code>date = 2023-03-27T15:32:00Z</code> *: <br> * 配列 *: 角括弧で囲む。 *: 例: <code>colors = [ "red", "yellow", "green" ]</code> *: <br> * テーブル (セクション) *: 角括弧で囲んだ名前で定義する。 *: 例: *: <syntaxhighlight lang="toml"> [database] server = "192.168.1.1" ports = [ 8001, 8001, 8002 ] </syntaxhighlight> *: <br> * インラインテーブル *: 中括弧で囲む。 *: 例: <code>point = { x = 1, y = 2 }</code> *: <br> * テーブルの配列 *: 2重の角括弧で定義する。 *: 例: *: <syntaxhighlight lang="toml"> [[fruits]] name = "apple" [[fruits]] name = "banana" </syntaxhighlight> *: <br> * コメント *: シャープ記号 (<code>#</code>) を使用する。 <br><br> == TOMLファイルの例 == <syntaxhighlight lang="toml"> # config.tomlファイル title = "設定ファイル" # トップレベルのキー [user] # ユーザ情報のセクション name = "山田太郎" age = 30 email = "yamada@example.com" [application] # アプリケーション設定のセクション version = "1.0.0" debug_mode = false [database] # データベース接続情報のセクション host = "localhost" port = 5432 username = "admin" password = "secret" [features] # 機能のオン / オフを制御するセクション enabled = ["login", "logout", "dashboard"] disabled = ["admin_panel"] [logging] # ロギング設定のセクション level = "info" file = "/var/log/app.log" [[servers]] # サーバ情報の配列 ip = "192.168.1.1" role = "frontend" [[servers]] # サーバ情報の配列 ip = "192.168.1.2" role = "backend" </syntaxhighlight> <br><br> == TOMLファイルとYAMLファイルの比較 == TOMLファイルは、YAMLファイルより学習が容易な傾向がある。<br> 一般的に、TOMLファイルの方がYAMLファイルよりパースが高速である。<br> <br> ==== YAMLの特徴 ==== * 人間が読みやすい。 * 階層構造を表現しやすい。 * 多くの言語やフレームワークでサポートされている。 * 複雑なデータ構造を表現できる。 * 複数のドキュメントを1つのファイルに含められる。 * アンカーとエイリアスを使用して、データの再利用が可能。 * フロースタイルと折りたたみスタイルの2つの記述スタイルがある。 * JSONのスーパーセットであり、JSONと互換性がある。 * <u>YAMLファイルは、大規模で複雑な設定に適している。</u> * YAMLの方が長く存在しており、より広くサポートされている。 <br> ==== TOMLの特徴 ==== * シンプルで明確な構文である。 * 日付や時刻のデータ型をネイティブにサポートされている。 * 曖昧さが少ない。 * コメントが記述しやすい。 * INIファイルに似た構造で、慣れ親しみやすい。 * 配列の配列や複雑な入れ子構造をサポートしている。 * キーにドット記法を使用できる<br>これは、セクション内のサブセクションを表現しやすい。 * 型推論が強く、明示的な型宣言が少なくて済む。 * <u>TOMLは小〜中規模の設定ファイルに適している。</u> <br><br> == Tomlynライブラリ == ==== Tomlynライブラリとは ==== Tomlynライブラリは、C#でTOML (Tom's Obvious, Minimal Language) ファイルを扱うためのライブラリである。<br> TOMLは設定ファイルフォーマットとして人気があり、読みやすさと書きやすさを兼ね備えている。<br> <br> Tomlynライブラリの主な特徴として、TOMLファイルの解析と生成が挙げられる。<br> このライブラリを使用することにより、開発者はTOMLデータを簡単にC#オブジェクトに変換したり、C#オブジェクトからTOMLデータを生成することができる。<br> <br> パフォーマンスもTomlynライブラリの強みの1つである。<br> 効率的な解析アルゴリズムを採用しており、大きなTOMLファイルでも高速に処理することができる。<br> また、メモリ使用量も抑えられるよう設計されている。<br> <br> 柔軟性もTomlynライブラリの特徴である。<br> 様々なTOMLデータ型 (文字列、整数、浮動小数点数、ブール値、日時、配列、テーブル等) をサポートしており、複雑な構造のTOMLファイルも扱える。<br> <br> エラーハンドリングにも配慮がなされており、解析中に問題が発生した場合は、詳細なエラーメッセージと行番号情報を提供して、デバッグを容易にする。<br> <br> さらに、Tomlynライブラリは.NET Standardに準拠しているため、様々な.NETプラットフォーム (.NET Framework、.NET Core、Xamarin等) で使用できる。<br> <br> 使いやすさも重視されており、直感的なAPIを提供しており、基本的な操作は数行のコードで実装でき、複雑な操作も比較的簡単に行えるよう設計されている。<br> <br> これらの特徴により、Tomlynライブラリは設定ファイルの管理やTOMLフォーマットを使用するアプリケーションの開発において、非常に有用なツールとなっている。<br> <br> <u>Tomlynライブラリのライセンスは、2条項BSDライセンスに準拠している。</u><br> <br> * TomlynライブラリのGithub *: https://github.com/xoofx/Tomlyn <br> ==== Tomlynライブラリのインストール ==== RiderまたはVisual StudioからNuGetを使用して、Tomlynライブラリをインストールする。<br> * Riderの場合 *# プロジェクトを開く。 *# [ツール]メインメニュー - [Nuget] - [ソリューション の Nuget パッケージを管理] (または、[<プロジェクト名> の Nuget パッケージを管理])を選択する。 *# メイン画面下部にある[パッケージ]タブから <u>Tomlyn</u> と入力して検索する。 *# メイン画面下部の右にある[+]ボタンを押下して、Tomlynライブラリをインストールする。 *: <br> * Visual Studioの場合 *# プロジェクトを開く。 *# NuGetパッケージマネージャーを開く。 *#* [ツール]メインメニュー - [NuGetパッケージマネージャー]を選択して、[ソリューションのNuGetパッケージの管理]を選択する。 *#* または、ソリューションエクスプローラーでプロジェクトを右クリックして、コンテキストメニューから[NuGetパッケージの管理]を選択する。 *# Tomlynライブラリを検索する。 *#: NuGetパッケージマネージャーの検索ボックスに <u>Tomlyn</u> と入力して検索する。 *# Tomlynライブラリのインストール *#: 検索結果からTomlynライブラリを選択して、[インストール]ボタンを押下する。 *# インストールの確認ダイアログが表示されるので、[OK]ボタンを押下してインストールを完了する。 *# 参照の確認 *#: インストールが完了した後、プロジェクトの参照にTomlynライブラリが追加されていることを確認する。 *: <br> * パッケージマネージャーコンソールからインストールする場合 *# プロジェクトを開く。 *# [表示]メインメニュー - [その他のウィンドウ] - [パッケージマネージャーコンソール]を選択して、パッケージマネージャーコンソールを開く。 *# パッケージマネージャーコンソールから、Tomlynライブラリをダウンロードしてインストールする。 *#: <code>Install-Package Tomlyn</code> *# ソリューションエクスプローラーのプロジェクトの参照において、Tomlynライブラリが追加されていることを確認する。 *: <br> * <code>dotnet</code>コマンドを使用する場合 *# ターミナルを開く。 *# プロジェクトのルートディレクトリに移動する。 *# Tomlynライブラリをインストールする。 *#: 最新の安定版をインストールする場合 *#: <code>dotnet add package Tomlyn</code> *#: <br> *#: バージョンを指定してインストールする場合 *#: <code>dotnet add package Tomlyn --version <バージョン></code> *#: <br> *: <u>※注意</u> *: <u>プロジェクトがGit等のバージョン管理システムを使用している場合、これらの変更がトラッキングされることを確認すること。</u> *: <u>プロジェクトを再ビルドして、新しく追加されたパッケージが正しく統合されていることを確認することを推奨する。</u> <br> プロジェクトにおいて、Tomlynライブラリを使用する場合は、ソースコードファイルの先頭にusingステートメントを追加する。<br> これにより、名前空間を使用することで、TOMLのシリアライズ / デシリアライズに関する主要な機能にアクセスすることができる。<br> <syntaxhighlight lang="c#"> using Tomlyn; using Tomlyn.Model; </syntaxhighlight> <br> また、大きなサイズなTOMLファイルを扱う場合は、ストリーミング処理を使用することを推奨する。<br> <br> ==== TOMLファイルの読み込み ==== 以下の例では、Tomlynライブラリを使用して、指定されたTOMLファイルを読み込み・解析して、その内容を表示している。<br> <br> * ファイルの読み込みと設定の表示 *: ReadTomlConfigAsyncとDisplayConfigAsyncメソッドで行う。 * ストリーミング処理 *: ReadTomlConfigAsyncメソッド内でFileStreamを使用して、大きなファイルでも効率的に読み込めるようにしている。 *: useAsyncプロパティをtrueを指定することにより、非同期I/O操作を有効にしている。 * TOMLファイルの解析 *: Toml.ToModelメソッドを使用して、TOMLの内容をTomlTableオブジェクトに変換している。 * 設定の表示 *: DisplayConfigAsyncメソッド内で、解析されたTOML設定の各セクションを順番に表示している。 *: ネストされた構造や配列も適切に処理している。 <br> <syntaxhighlight lang="toml"> # 使用するTOMLファイル title = "設定ファイル" # トップレベルのキー [user] # ユーザ情報のセクション name = "山田太郎" age = 30 email = "yamada@example.com" [application] # アプリケーション設定のセクション version = "1.0.0" debug_mode = false [database] # データベース接続情報のセクション host = "localhost" port = 5432 username = "admin" password = "secret" [features] # 機能のオン / オフを制御するセクション enabled = ["login", "logout", "dashboard"] disabled = ["admin_panel"] [logging] # ロギング設定のセクション level = "info" file = "/var/log/app.log" [[servers]] # サーバ情報の配列 ip = "192.168.1.1" role = "frontend" [[servers]] # サーバ情報の配列 ip = "192.168.1.2" role = "backend" </syntaxhighlight> <br> <syntaxhighlight lang="c#"> using System; using System.IO; using System.Collections.Generic; using System.Threading.Tasks; using Tomlyn; using Tomlyn.Model; class Program { static async Task Main(string[] args) { string filePath = "sample.toml"; // TOMLファイルのパス try { // ファイルを非同期で読み込み・解析 var config = await ReadTomlConfigAsync(filePath); // 解析した設定を表示 await DisplayConfigAsync(config); } catch (Exception ex) { Console.WriteLine($"エラーが発生: {ex.Message}"); } } // TOMLファイルを非同期で読み込み・解析 static async Task<TomlTable> ReadTomlConfigAsync(string filePath) { using (var stream = new FileStream(filePath, FileMode.Open, FileAccess.Read, FileShare.Read, bufferSize: 4096, useAsync: true)) using (var reader = new StreamReader(stream)) { string tomlContent = await reader.ReadToEndAsync(); return Toml.ToModel(tomlContent); } } // 解析された設定を非同期で表示 static async Task DisplayConfigAsync(TomlTable config) { await Task.Run(() => { Console.WriteLine($"タイトル: {config["title"]}"); // ユーザ情報の表示 var user = (TomlTable)config["user"]; Console.WriteLine("ユーザ情報:"); Console.WriteLine($"名前: {user["name"]}"); Console.WriteLine($"年齢: {user["age"]}"); Console.WriteLine($"メール: {user["email"]}"); // アプリケーション設定の表示 var app = (TomlTable)config["application"]; Console.WriteLine("アプリケーション設定:"); Console.WriteLine($"バージョン: {app["version"]}"); Console.WriteLine($"デバッグモード: {app["debug_mode"]}"); // データベース接続情報の表示 var db = (TomlTable)config["database"]; Console.WriteLine("データベース接続情報:"); Console.WriteLine($"ホスト: {db["host"]}"); Console.WriteLine($"ポート: {db["port"]}"); Console.WriteLine($"ユーザー名: {db["username"]}"); Console.WriteLine($"パスワード: {db["password"]}"); // 機能の表示 var features = (TomlTable)config["features"]; Console.WriteLine("機能:"); Console.WriteLine($"有効: {string.Join(", ", (List<object>)features["enabled"])}"); Console.WriteLine($"無効: {string.Join(", ", (List<object>)features["disabled"])}"); // ロギング設定の表示 var logging = (TomlTable)config["logging"]; Console.WriteLine("ロギング設定:"); Console.WriteLine($"レベル: {logging["level"]}"); Console.WriteLine($"ファイル: {logging["file"]}"); // サーバ情報の表示 var servers = (List<object>)config["servers"]; Console.WriteLine("サーバ情報:"); foreach (TomlTable server in servers) { Console.WriteLine($"IP: {server["ip"]}"); Console.WriteLine($"役割: {server["role"]}"); Console.WriteLine(); } }); } } </syntaxhighlight> <br> ==== TOMLファイルの書き込み ==== 以下の例では、Tomlynライブラリを使用して、指定されたTOMLファイルを生成している。<br> <br> * ストリーミング処理 *: WriteTomlConfigAsyncメソッド内でFileStreamを使用して、効率的に書き込んでいる。 *: また、useAsyncプロパティにtrueを指定することにより、非同期I/O操作を有効にしている。 * TOMLファイルの生成 *: CreateTomlConfigメソッドで、指定された構造のTOML設定をTomlTableオブジェクトとして作成している。 *: Toml.FromModelメソッドを使用して、TomlTableオブジェクトをTOML文字列に変換している。 * ファイルへの書き込み *: WriteTomlConfigAsyncメソッド内で、生成されたTOML文字列をファイルに非同期で書き込んでいる。 <br> <syntaxhighlight lang="c#"> using System; using System.IO; using System.Collections.Generic; using System.Threading.Tasks; using Tomlyn; using Tomlyn.Model; class Program { static async Task Main(string[] args) { string filePath = "config.toml"; // 書き込むTOMLファイルのパス try { // TOML設定を作成 var config = CreateTomlConfig(); // 設定をTOMLファイルに非同期で書き込み await WriteTomlConfigAsync(config, filePath); } catch (Exception ex) { Console.WriteLine($"エラーが発生: {ex.Message}"); } } // TOML設定を作成 static TomlTable CreateTomlConfig() { var config = new TomlTable { ["title"] = "設定ファイル", ["user"] = new TomlTable { ["name"] = "山田太郎", ["age"] = 30, ["email"] = "yamada@example.com" }, ["application"] = new TomlTable { ["version"] = "1.0.0", ["debug_mode"] = false }, ["database"] = new TomlTable { ["host"] = "localhost", ["port"] = 5432, ["username"] = "admin", ["password"] = "secret" }, ["features"] = new TomlTable { ["enabled"] = new List<string> { "login", "logout", "dashboard" }, ["disabled"] = new List<string> { "admin_panel" } }, ["logging"] = new TomlTable { ["level"] = "info", ["file"] = "/var/log/app.log" }, ["servers"] = new List<TomlTable> { new TomlTable { ["ip"] = "192.168.1.1", ["role"] = "frontend" }, new TomlTable { ["ip"] = "192.168.1.2", ["role"] = "backend" } } }; return config; } // TOML設定をファイルに非同期で書き込む static async Task WriteTomlConfigAsync(TomlTable config, string filePath) { // TomlTableをTOML文字列に変換 string tomlString = Toml.FromModel(config); // ファイルを非同期で書き込む using (var stream = new FileStream(filePath, FileMode.Create, FileAccess.Write, FileShare.None, bufferSize: 4096, useAsync: true)) using (var writer = new StreamWriter(stream)) { await writer.WriteAsync(tomlString); } } } </syntaxhighlight> <br> ==== TOMLファイルの修正 ==== 以下の例では、Tomlynライブラリを使用して、以下に示すTOMLファイルの値を修正している。<br> <br> * ストリーミング処理 *: ReadTomlConfigAsyncおよびWriteTomlConfigAsyncメソッド内でFileStreamを使用して、効率的に読み書きしている。 *: また、useAsyncプロパティの値をtrueを指定することにより、非同期I/O操作を有効にしている。 * TOMLファイルの更新 *: UpdateConfigメソッドで、指定された変更を行っている。 *:* [application]セクション -> "version"キーの値を"1.1.0"に変更する。 *:* [logging]セクション -> "level"キーそのものを削除する。 *:* [features]セクション -> "enabled"キーの配列から"logout"を削除する。 *:* 2つ目の<nowiki>[[servers]]</nowiki>配列 -> "ip"キーの値を"192.168.1.10"に変更する。 * ファイルへの書き込み *: WriteTomlConfigAsyncメソッド内で、更新されたTOMLデータをファイルに非同期で書き込んでいる。 <br> <syntaxhighlight lang="c#"> using System; using System.IO; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using Tomlyn; using Tomlyn.Model; class Program { static async Task Main(string[] args) { string filePath = "config.toml"; // 修正するTOMLファイルのパス try { // TOMLファイルを非同期で読み込み・解析 var config = await ReadTomlConfigAsync(filePath); // ファイルを修正 UpdateConfig(config); // 修正したデータをTOMLファイルに非同期で書き込む await WriteTomlConfigAsync(config, filePath); } catch (FileNotFoundException) { Console.WriteLine($"エラー: ファイル '{filePath}' が存在しない"); } catch (UnauthorizedAccessException) { Console.WriteLine($"エラー: ファイル '{filePath}' にアクセスする権限がない"); } catch (TomlParseException ex) { Console.WriteLine($"エラー: TOMLファイルの解析に失敗: {ex.Message}"); } catch (Exception ex) { Console.WriteLine($"予期せぬエラーが発生: {ex.Message}"); } } // TOMLファイルを非同期で読み込む static async Task<TomlTable> ReadTomlConfigAsync(string filePath) { using (var stream = new FileStream(filePath, FileMode.Open, FileAccess.Read, FileShare.Read, bufferSize: 4096, useAsync: true)) using (var reader = new StreamReader(stream)) { string tomlContent = await reader.ReadToEndAsync(); return Toml.ToModel(tomlContent); } } // データを修正する static void UpdateConfig(TomlTable config) { // [application]セクション -> "version"キーを"1.1.0"に変更 ((TomlTable)config["application"])["version"] = "1.1.0"; // [features]セクション -> "enabled"キー (配列) から"logout"を削除 var enabledFeatures = (List<object>)((TomlTable)config["features"])["enabled"]; enabledFeatures.Remove("logout"); // 2つ目の[[servers]]配列 -> "ip"セクションを"192.168.1.10"に変更 var servers = (List<object>)config["servers"]; if (servers.Count >= 2) { ((TomlTable)servers[1])["ip"] = "192.168.1.10"; } // [logging]セクション -> "level"キーを削除 ((TomlTable)config["logging"]).Remove("level"); } // 更新された設定をTOMLファイルに非同期で書き込む static async Task WriteTomlConfigAsync(TomlTable config, string filePath) { string tomlString = Toml.FromModel(config); using (var stream = new FileStream(filePath, FileMode.Create, FileAccess.Write, FileShare.None, bufferSize: 4096, useAsync: true)) using (var writer = new StreamWriter(stream)) { await writer.WriteAsync(tomlString); } } } </syntaxhighlight> <br><br> == Tommyライブラリ == ==== Tommyライブラリとは ==== Tommyライブラリは、C#で開発された軽量かつ高速なメモリ内データ構造ライブラリである。<br> 主な特徴として、ハッシュテーブルと順序付き辞書の実装に焦点を当てている。<br> <br> このライブラリの中核となるのは、Tommy.Tommyという汎用的なハッシュテーブル実装である。<br> これは、高速な検索、挿入、削除操作を提供しており、同時にメモリ使用量を最小限に抑えるように設計されている。<br> <br> Tommyライブラリは、大量のデータを扱う必要があるアプリケーションやパフォーマンスが重要な場面で特に有効である。<br> 例えば、ゲーム開発、リアルタイムシステム、大規模データ処理等の分野で活用されることがある。<br> <br> このライブラリの特筆すべき点として、カスタマイズ性の高さが挙げられる。<br> 開発者は自身のニーズに合わせて、ハッシュ関数やメモリ割り当て戦略をカスタマイズすることができる。<br> これにより、特定のユースケースに対して最適化された実装が可能となる。<br> <br> また、Tommyライブラリは.NET Standard 2.0をサポートしているため、幅広い.NETプラットフォームで使用することができる。<br> これには、.NET Framework、.NET Core、Xamarinなどが含まれる。<br> <br> 基本的な操作は他の一般的なコレクションタイプと似ているが、より高度な機能や最適化オプションも提供されている。<br> <br> ただし、Tommyライブラリを使用する際は、その特性や制限を十分に理解することが重要である。<br> 例えば、一般的なコレクションタイプと比較して、メモリ使用量やパフォーマンスの特性が異なる場合がある。<br> そのため、プロジェクトの要件に適しているかどうかを慎重に評価する必要がある。<br> <br> <u>Tommyライブラリのライセンスは、MITライセンスに準拠している。</u><br> <br> * TommyライブラリのGithub *: https://github.com/dezhidki/Tommy <br> ==== Tommyライブラリのインストール ==== RiderまたはVisual StudioからNuGetを使用して、Tommyライブラリをインストールする。<br> * Riderの場合 *# プロジェクトを開く。 *# [ツール]メインメニュー - [Nuget] - [ソリューション の Nuget パッケージを管理] (または、[<プロジェクト名> の Nuget パッケージを管理])を選択する。 *# メイン画面下部にある[パッケージ]タブから <u>Tommy</u> と入力して検索する。 *# メイン画面下部の右にある[+]ボタンを押下して、Tommyライブラリをインストールする。 *: <br> * Visual Studioの場合 *# プロジェクトを開く。 *# NuGetパッケージマネージャーを開く。 *#* [ツール]メインメニュー - [NuGetパッケージマネージャー]を選択して、[ソリューションのNuGetパッケージの管理]を選択する。 *#* または、ソリューションエクスプローラーでプロジェクトを右クリックして、コンテキストメニューから[NuGetパッケージの管理]を選択する。 *# Tommyライブラリを検索する。 *#: NuGetパッケージマネージャーの検索ボックスに <u>Tommy</u> と入力して検索する。 *# Tommyライブラリのインストール *#: 検索結果からTommyライブラリを選択して、[インストール]ボタンを押下する。 *# インストールの確認ダイアログが表示されるので、[OK]ボタンを押下してインストールを完了する。 *# 参照の確認 *#: インストールが完了した後、プロジェクトの参照にTommyライブラリが追加されていることを確認する。 *: <br> * パッケージマネージャーコンソールからインストールする場合 *# プロジェクトを開く。 *# [表示]メインメニュー - [その他のウィンドウ] - [パッケージマネージャーコンソール]を選択して、パッケージマネージャーコンソールを開く。 *# パッケージマネージャーコンソールから、Tommyライブラリをダウンロードしてインストールする。 *#: <code>Install-Package Tommy</code> *# ソリューションエクスプローラーのプロジェクトの参照において、Tommyライブラリが追加されていることを確認する。 *: <br> * <code>dotnet</code>コマンドを使用する場合 *# ターミナルを開く。 *# プロジェクトのルートディレクトリに移動する。 *# Tommyライブラリをインストールする。 *#: 最新の安定版をインストールする場合 *#: <code>dotnet add package Tommy</code> *#: <br> *#: バージョンを指定してインストールする場合 *#: <code>dotnet add package Tommy --version <バージョン></code> *#: <br> *: <u>※注意</u> *: <u>プロジェクトがGit等のバージョン管理システムを使用している場合、これらの変更がトラッキングされることを確認すること。</u> *: <u>プロジェクトを再ビルドして、新しく追加されたパッケージが正しく統合されていることを確認することを推奨する。</u> <br> プロジェクトにおいて、Tommyライブラリを使用する場合は、ソースコードファイルの先頭にusingステートメントを追加する。<br> これにより、名前空間を使用することで、TOMLのシリアライズ / デシリアライズに関する主要な機能にアクセスすることができる。<br> <syntaxhighlight lang="c#"> using Tommy; </syntaxhighlight> <br> また、大きなサイズなTOMLファイルを扱う場合は、ストリーミング処理を使用することを推奨する。<br> <br> ==== TOMLファイルの読み込み ==== <br><br> __FORCETOC__ [[カテゴリ:C_Sharp]]
C Sharpの基礎 - TOML
に戻る。
案内
メインページ
最近の更新
おまかせ表示
MediaWiki についてのヘルプ
ツール
リンク元
関連ページの更新状況
特別ページ
ページ情報
We ask for
Donations
Collapse