我在代码中使用了很多Linq查询,我正在寻找一个提供类似于LinqPad提供的格式化Dump()函数的库.LinqPad的Dump()扩展方法非常好用,因为它可以很好地处理嵌套集合.
理想情况下,它会打印出纯文本中的漂亮表格,但我可以通过吐出HTML或其他格式良好的数据.
来自VS的ObjectDumper示例根本不会删除它.
dic*_*d30 20
这就是我一直在使用的:
特别感谢这个主题(特别是Pat Kujawa的&anunay的评论)
C#(直接来自Pat Kujawa的评论(虽然我让它自己返回以便它像linqpad的版本一样链)):
public static T Dump<T>(this T o) {
var localUrl = Path.GetTempFileName() + ".html";
using (var writer = LINQPad.Util.CreateXhtmlWriter(true))
{
writer.Write(o);
File.WriteAllText(localUrl, writer.ToString());
}
Process.Start(localUrl);
return o;
}
Run Code Online (Sandbox Code Playgroud)
VB(我的转换,因为我在VB应用程序中需要它):
Public Module LinqDebugging
<System.Runtime.CompilerServices.Extension()>
Public Function Dump(Of T)(ByVal o As T) As T
Dim localUrl = Path.GetTempFileName() + ".html"
Using writer = LINQPad.Util.CreateXhtmlWriter(True)
writer.Write(o)
File.WriteAllText(localUrl, writer.ToString())
End Using
Process.Start(localUrl)
Return o
End Function
End Module
Run Code Online (Sandbox Code Playgroud)
您需要将linqpad可执行文件添加为您的项目的引用,以及System.IO和System.Diagnostics
这将启动您的默认Web浏览器,显示linqpad将生成的确切输出.