我正在使用 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;
}
}
最佳答案
Serilog 的解构仅获取属性;基类的成员是字段。将它们转换为属性应该按预期工作。
关于c# - Serilog 在事件序列化时省略基类属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37978919/