c# - 使用脚本将 LinqPad 结果控制台导出为 Html 文件

标签 c# linqpad

在 LINQPad 软件中,我想知道是否可以将结果保存或导出为 Html 文件。

结果选项卡是

enter image description here

我想保存结果并能够通过电子邮件发送。

我知道我可以通过使用一些外部指令来做到这一点,例如

string htmlResult = Util.Run ("test.linq", QueryResultFormat.Html).AsString();

lprun -format=html foo.linq > output.html

但我希望能够按需导出结果,但并非总是如此。我想为我的脚本带​​来最少的交互性。我想让脚本的用户决定何时继续以及何时发送脚本。

我只需要访问结果的正文元素。 LINQpad 让我对此感到疯狂,因为我可以使用 Util.Run 或 lprun 生成 Html,我还可以使用 Util.HtmlHead 访问此结果的头部,我可以使用 Util.ClearResults() 清除结果,我可以写在此结果页面中包含我想要的所有内容,但无法检索它。我可以使用右上角的“导出”按钮手动导出它,但无法通过编程来完成。

我通过使用带有新 Util 类的扩展创建了一个解决方法

public static class Util2
{
    // https://www.linqpad.net/CustomizingDump.aspx
    // http://www.linqpad.net/lprun.aspx
    // https://stackoverflow.com/questions/3555317/linqpad-extension-methods
    private static StringBuilder htmlStringBuilder = new StringBuilder();

    /// <summary>Writes to LINQPad result window and save the result in html file</summary>
    public static object Save(this object o, bool writeFile = false, string fileName = null)
    {
        htmlStringBuilder.Append(Util.ToHtmlString(o));
        return o;
    }

    public static string GetResults()
    {
        return htmlStringBuilder.ToString();
    }

    public static void ClearResults()
    {
        htmlStringBuilder.Clear();
    }
}

我可以通过简单地在所有 .Dump() 之后添加 .Save() 来使用它。我无法再使用 Console.Write() 并尝试最大程度地使用 Util.RawHtml()。

最佳答案

目前,无法以编程方式导出结果窗口的内容。但您可以通过提取原始 HTML 来获得相当接近的结果:

string rawHTML = Util.InvokeScript (true, "eval", "document.documentElement.outerHTML");

这与您从交互式“导出为 HTML”选项中获得的“熟”HTML 不同。煮熟的 HTML 中的超链接和脚本已被清除,如果没有 LINQPad 主机,这些超链接和脚本将无法工作。

不久前有一个 LINQPad 功能请求添加一个方法,例如 Util.GetResultsAsHtml() 来提取导出的 HTML。添加这样的方法的困难在于,当通过 lprun 调用脚本时,它会失败(因为结果被发送到 Console.Out 而不是浏览器)。

关于c# - 使用脚本将 LinqPad 结果控制台导出为 Html 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70457162/

相关文章:

c# - 无法在标签中显示带有新行的多行文本框文本

c# - String.Split 切割分隔符

.net - 如何在 LINQPad 中使用 Akavache?

c# - PredicateBuilder 方法说明

entity-framework - 我可以获取 LinqPad 创建的 DbContext 吗?

c# - 使用 C# 将 Html 表(文本)转换为图像

c# - ThreadState 已停止。没有异常(exception)。这是怎么回事?

c# - 将 TIFF 调色板从 8 位更改为 32 位

c# - Linq2SQL : Select only some columns, 但仍然可以提交更改

json - 如何将 LinqPAD 中的数据导出为 JSON?