This question already has answers here:
How do I use the LINQPad Dump() extension method in Visual Studio? [closed]

(4个答案)


5年前关闭。





我在代码中使用了很多Linq查询,并且正在寻找一个提供与LinqPad提供的格式类似的Dump()函数的库。 LinqPad的Dump()扩展方法确实非常不错,因为它可以很好地处理嵌套集合。

理想情况下,它将以纯文本格式打印出漂亮的表格,但是我可以吐出HTML或其他格式正确的数据。

VS的ObjectDumper示例完全不会剪切它。

最佳答案

这就是我一直在使用的:

Special thanks to this thread (especially Pat Kujawa's & anunay's comments)

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;
}


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


您需要将linqpad可执行文件以及System.IOSystem.Diagnostics添加为项目中的引用。

这将启动您的默认Web浏览器,显示linqpad将生成的确切输出。

关于linq - 是否有提供像LinqPad这样的格式化Dump()函数的库? ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6032908/

10-11 04:02