gpt4 book ai didi

C# - 将 HTML 编写为字符串的面向对象方式?

转载 作者:搜寻专家 更新时间:2023-10-31 21:53:23 27 4
gpt4 key购买 nike

我正在尝试以编程方式递归地发送目录中所有 dll 文件及其版本的电子邮件。我想使用表格将电子邮件作为 HTML 输出发送。有没有好的面向对象的方法来做到这一点?我不想手写所有标签。

类似于:

private string getHTMLString()
{
DirectoryInfo di = new DirectoryInfo("some directory");
FileInfo[] files = di.GetFiles("*.dll", SearchOption.AllDirectories);
foreach (FileInfo file in files)
{
Assembly assembly = Assembly.LoadFile(file.FullName);
string version = assembly.GetName().Version.ToString();
}
}

最佳答案

您可以通过实例化 System.Web.UI.WebControls.Table、添加 TableRows 和 TableCells 然后将 Table.RenderControl 调用到 HtmlTextWriter 中来实现 OO,但公平地说:那会很糟糕 :)

        var tbl = new System.Web.UI.WebControls.Table();

DirectoryInfo di = new DirectoryInfo("some directory");
FileInfo[] files = di.GetFiles("*.dll", SearchOption.AllDirectories);
foreach (FileInfo file in files)
{
Assembly assembly = Assembly.LoadFile(file.FullName);
string version = assembly.GetName().Version.ToString();

var tr = new System.Web.UI.WebControls.TableRow();
var tc = new System.Web.UI.WebControls.TableCell();
tc.Text = HttpUtility.HtmlEncode(version);
tr.Cells.Add(tc);
tbl.Rows.Add(tr);
}

using (var ts = new StringWriter())
using (var html = new System.Web.UI.HtmlTextWriter(ts))
{
// Not entirely sure about this part
tbl.RenderControl(html);
html.Flush();
string htmlString = ts.ToString();
}

关于C# - 将 HTML 编写为字符串的面向对象方式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2003176/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com