gpt4 book ai didi

c# - 序列化对象或集合以记录

转载 作者:可可西里 更新时间:2023-11-01 08:32:39 25 4
gpt4 key购买 nike

我想在我的错误消息中保存一些附加信息。例如,它应该是用户查询或其他内容。我应该怎么做?

是否有任何用于记录集合、结构或对象的构建方法?还是自己连载?

最佳答案

不,没有内置的序列化对象。当您使用像 Debug<T>(string message, T argument) 这样的格式化方法时在内部(你可以看到类 NLog.LogEventInfo )简单 String.Format用于创建格式化消息(即只在每个参数上调用 ToString())。

我使用 Json.NET用于将对象和集合序列化为 JSON。很容易创建像

这样的扩展方法
public static string ToJson(this object value)
{
var settings = new JsonSerializerSettings {
ReferenceLoopHandling = ReferenceLoopHandling.Ignore
};

return JsonConvert.SerializeObject(value, Formatting.Indented, settings);
}

然后在记录期间使用它:

Logger.Debug("Saving person {0}", person.ToJson());

关于c# - 序列化对象或集合以记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23007377/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com