【发布时间】:2021-12-23 02:44:39
【问题描述】:
在 LINQPad 软件中,我想知道是否可以将结果保存或导出为 Html 文件。
结果标签是
我想保存结果并能够通过电子邮件发送。
我知道我可以通过使用一些外部指令来做到这一点,例如
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 而不仅仅是文本?
-
@KlausGütter,我不明白你的问题? Html 是文本。为什么我想得到 Html 的结果?因为我可以格式化文本并使用链接并将结果视为网格。