Serilogの@
構文の目的は何ですか?Serilogの構造解除とは何ですか?
私は次のように実行した場合:
var dummy = new { Foo = "Bar", Date = DateTime.Now };
Log.Information("Dummy object: {Dummy}", dummy);
をそれから私はそうのようなコンソールに出力を得る:
Time: 16:20 [Level: Information] (ManagedThreadID: 8) Message: Dummy object: "Foo = Bar, Date = 25/06/2016 16:20:30 }"
私は{@Dummy}
に{Dummy}
を変更した場合、私は同じ出力
Time: 16:22 [Level: Information] (ManagedThreadID: 8) Message: Dummy object: Foo: "Bar", Date: 06/25/2016 16:22:28 }
だから、@
とは何ですか?そう?
はい! 'ToString()'で匿名型を使うと、シリアライズされたフォームが得られます。 – BanksySan
@BanksySan Kind of ... ToString()は匿名型の文字列でも、文字列が1つだけ表示されます。 '@'はシンクにシリアライズされたオブジェクトを提供し、シンクはシリアライズされたデータを格納することを含め、シンクが望むものを何でも行うことができます。 Seil(https://getseq.net)を使ってSerilogを使って、 '@ '演算子がどの程度強力であるかを調べてみてください。 –