2016-06-22 3 views
1

私はSerilogでイベントをシリアライズしています。このイベントは、イベントの必須情報を含む基本抽象クラスを拡張する幅広いサービスから送信でき、子クラスはすべて特定のイベント情報が必要でした。Serilogでイベントシリアル化の基本クラスのプロパティを省略する

ログに問題があるのは、子クラスのプロパティのみが保存され、親クラスのプロパティは保存されていないことです。 serilogにシリアライゼーションに基本クラスのプロパティを含める方法はありますか?

基本クラスを非抽象クラスに変更し、Destructor.ToMaximumLengthを10000に設定してみましたが、まだ運がありませんでした。

public abstract class AnalyticsEvent 
{ 
    public readonly Guid EventId = Guid.NewGuid(); 
    public readonly DateTimeOffset EventTime = DateTimeOffset.UtcNow; 
    public readonly EventGroups EventGroup; 
    public readonly Guid? TransactionId; 
    public readonly string EventName; 

    public AnalyticsEvent(EventGroups eventGroup, Guid? transactionId, string eventName) 
    { 
     EventGroup = eventGroup; 
     TransactionId = transactionId; 
     EventName = eventName; 
    } 
} 
+0

含める必要がある基本クラスのプロパティのスニペットを投稿できますか?それらは公開されているか保護されていますか?ありがとう! –

+0

@NicholasBlumhardtスニペットを追加しました – evilpilaf

答えて

2

シリロッグの構造解除は、プロパティを取得するだけです。基本クラスのメンバはフィールドです。それらをプロパティに変換すると、期待どおりに動作するはずです。

関連する問題