【发布时间】:2021-12-10 14:54:09
【问题描述】:
一个例子:
如果我们在 C# 控制台中键入 scoreDir,它的内容会被打印得很漂亮,即对象的定义、它的长度和它的数据。
我想用 内置 .NET 方法来模拟这种打印,例如ToString()。但是,如图所示,ToString() 不起作用。 “模拟”意味着我可以生成相同的打印字符串,但将其存储在变量中。微软一定使用了一些函数来打印这样的对象;最好只是重复使用该功能(不要重新发明轮子)。
【问题讨论】:
-
据我所知,.NET 中没有任何内置功能可以为您做到这一点。这很可能是内置在交互式控制台应用程序中的。
-
虽然不如交互式控制台好(甚至不如
record.ToString())我经常发现自己打电话给JsonSerializer.Serialize(myObject),因为生成的JSON比输出更有用-在大多数情况下,现成的.ToString()。 -
序列化 ConcurrentDictionary 有几个限制,从错误到您可以在 S.O. 中检查的其他问题。或 Google,所以我将回答有关 Newtonsoft 和 .NET 6.0 的问题,请查看我的回答中的注释
-
@DCAggie JsonSerializer.Serialize 在这种情况下不起作用
-
添加this Nuget package,生成带有Microsoft.CodeAnalysis.CSharp.Scripting.Hosting.CSharpObjectFormatter.Instance.FormatObject(scoredir)的字符串;
标签: c# c#-interactive