Serilog: JSON.NET動的オブジェクト(JObject)をネイティブにサポート

作成日 2013年05月02日  ·  13コメント  ·  ソース: serilog/serilog

Twitterで、IDestructuringPolicyを介して実装するのはかなり簡単なはずだとおっしゃいました
;)

enhancement

最も参考になるコメント

全てのコメント13件

IDestructuringPolicyを介してこれを機能させようとしていましたが、機能しないのではないかと心配しています。

コードベースをざっと見てみると(ここではhttps://github.com/serilog/serilog/blob/master/src/Serilog/Parameters/PropertyValueConverter.cs?source=c#L112)、最初にPropertyValueConverterことが示されているようです。オブジェクトをコレクションとして扱い(すべてのJTokenIEnumerable )、したがって、 IDestructuringPolicyチェックする必要はありません。

おそらくIDestructuringPolicyに高い優先度を与える(最初にチェックしてからデフォルトの動作にフォールバックする)ことで解決策が見つかるかもしれませんが、完全に間違っている可能性があります。これを確認するのに2分しか費やしませんでした。コード。

今のところ、間接参照のレベルを追加することで、簡単な回避策を作成しました。

私は、クラスと呼ばれる追加JObjectWrapperでないことIEnumerableと私は私のラップJObjectそれで。 今、私のIDestructuringPolicyが呼び出され、世界は再び幸せな場所になりました。

@kkozmicこれはどうですか? 上記の制限を取り除く価値はありますか? 他に何か考えはありますか? 乾杯 :)

まあ、それは厄介な回避策です:)それは私が必要な場所に私を連れて行きますが、可能であればそれよりももっとエレガントな解決策が欲しいです。

新しいインターフェース、おそらく?

public interface ISequenceConversionPolicy
{
   bool TryConvertToSequence(object value, ILogEventPropertyValueFactory propertyValueFactory, out SequenceValue result);
}

また、多分:

public interface IDictionaryConversionPolicy

:)

とりあえず締めくくりますが、誰かがPRを試してみたいと思っているなら、これを試してみてください。 すべての入力者に感謝します! :)

@kkozmicあなたのIDestructuringPolicy (ラッパーで動作するもの)を見ることができる可能性はありますか?

申し訳ありませんが、そのコードはもう持っていません。

2015年2月3日火曜日4:38:45 AMハリーマッキンタイア[email protected]
書きました:

@kkozmichttps //github.com/kkozmic何かチャンスがあれば見て
IDestructuringPolicy(ラッパーで機能するもの)?


このメールに直接返信するか、GitHubで表示してください
https://github.com/serilog/serilog/issues/30#issuecomment-72500600

371はこれを反映しています。再開するためのものだと思いますが、「2.0」の可能性があります。

ビルド1.4.168は、これを厄介にした制限を取り除きます。 それを利用する_Serilog.Extras.JObject_または同様のものを見たいです:-)

これを釘付けにしてくれてありがとう@Jaben

良い!

@nblumhardtそれは素晴らしいです、ありがとう!

このページは役に立ちましたか?
0 / 5 - 0 評価