C# で気軽に Console.WirteLine で 3rd Party ライブラリのオブジェクトの概要を標準出力に出力したくなり調べていたところ、以下のピッタリの FAQ を見つけました。
C# インタラクティブでは```> var a = 1;> a1> new List { "x", "yz" }List(2) { "x", " C# でオブジェクトを見やすくデバッグ表示する - teratail[テラテイル] |
自分のメモ用に新規コンソールプロジェクトにて、上記の FAQ で紹介されている Microsoft.CodeAnalysis.CSharp.Scripting を使う方法を残しておきます。
プロジェクトの作成とパッケージの追加、そしてビルドと実行のコマンドは以下。
dotnet new console --use-program-main
dotnet add package Microsoft.CodeAnalysis.CSharp.Scripting --version 4.12.0
dotnet build
./bin/Debug/net8.0/FormatTest
# FormatTargetObject { Id=1, Name="John Doe" }
Microsoft.CodeAnalysis.CSharp.Scripting を使用してオブジェクトの概要を出力するコードは以下。
namespace FormatTest;
using Microsoft.CodeAnalysis.CSharp.Scripting.Hosting;
class FormatTargetObject
{
public int Id { get; set; } = 1;
public string Name { get; set; } = "John Doe";
}
class Program
{
private static readonly CSharpObjectFormatter formatter = CSharpObjectFormatter.Instance;
static void Main(string[] args)
{
Console.WriteLine(formatter.FormatObject(new FormatTargetObject()));
}
}