我有一个类,并且某些属性是动态的,当我的类传递给某些操作API时,该方法就无法理解为JObject,问题是登录NLOG,当我尝试执行此操作时,我的属性中的日志动态显示如下“ []”示例:
myProperty:[
[[]],
[],
[]
]
当我尝试将类Objet全部转换为JObject(Newtonsoft)时,我的所有日志将像[]一样波纹管:
{ "time": "2019-05-13 18:12:16.2224", "level": "DEBUG", "JsonProperties": { "log": [[[[[]],[[]],[[]],[[[[]],[[]],[[]]]],[[[[[[[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]]]]],[[[[]],[[]],[[]],[[]],[[]],[[[[]],[[]],[[]]]],[[[[[]],[[]]],[[[]],[[]]]]],[[[[[]],[[]],[[]]],[[[]],[[]],[[]]]]],[[[[[]],[[]]],[[[]],[[]]]]]]]]]]]],[[[[[]],[[]],[[]],[[[[]],[[]],[[]],[[]]]]]]]] }, "message": "Testando performance no LoggerGenerator.", "log": [[],[]] }
我解决了这个问题,将JObject转换为Dictionary并可以正常工作,但这样做的开销很大。
我需要在不创建自己的方法的情况下解决此问题,并转换为Dictionary
谢谢。
答案 0 :(得分:1)
try ... catch
是JObject
,NLog会尝试枚举它。
您可以执行以下操作:
IEnumerable
您还可以通过覆盖以下内容来自定义NLog处理特殊对象(如JObject)的方式: