【问题标题】:What's a good templating engine for a .NET console app?.NET 控制台应用程序的好的模板引擎是什么?
【发布时间】:2023-03-22 08:35:01
【问题描述】:

我们正在寻找一种从 .NET 控制台应用程序生成模板化内容(在本例中为文本和 HTML 格式的个性化电子邮件)的快速、灵活的方法。

我们没有 VirtualPathProvider 和有效的 HttpContext.Current,从我们最初的实验来看,这意味着使用 WebForms 视图引擎和任何其他 .NET Web 视图引擎(Spark、 Razor)将需要大量的管道来让他们认为他们正在运行一个网络应用程序。

我想做这样的事情:

var customerTemplateData = GetTemplateDate(customer);
var htmlBody = templateEngine.Render("template.html", customerTemplateData);
var textBody = templateEngine.Render("template.txt", customerTemplateDate);
SendMail("me@mydomain.com", customer.Email, "Hey there!", htmlBody, textBody);

我想处理复杂的嵌套数据、列表中的大量列表,每分钟最多 1000 次。

对于专用模板引擎或在独立上下文中运行 Web 视图引擎的方法的任何建议将不胜感激 :)

谢谢,

迪伦

【问题讨论】:

    标签: asp.net-mvc razor webforms template-engine spark-view-engine


    【解决方案1】:

    如果您正在寻找有关如何使用 Spark 实现这一目标的指导,Spark 源代码中有一个功能齐全的Email and Text Templating Sample available here

    应该注意的是,此示例实际上不依赖于 HttpContext 或任何其他 Web 基础设施。它是完全独立的,可以像控制台应用程序一样轻松运行。

    希望这会有所帮助,
    万事如意,

    【讨论】:

    • 我终于设法让 Spark 做我需要的事情,但它需要一些黑客攻击 - 对核心库进行两个微小的更改,并将 SparkSettings 直接注入引擎而不是依赖应用程序.config 文件(由于某种原因,它无法在控制台应用程序中加载 SparkConfiguration 处理程序?)我的 Github fork 中的工作代码;接受我的拉取请求,我会接受你的回答。 :)
    • 我已经在一个选项卡中打开了 pull req :) 只是在等待一些时间来正确完成它 - 但它看起来非常好。感谢您的贡献 - 这比公认的答案更有价值;)
    • 好的,它被拉进来了,所以你现在可以参考主仓库了。再次感谢您的贡献。无需更改核心库,但我修复了您的示例以正确使用它。玩得开心! :)
    【解决方案2】:

    从命令行创建模板内容的方法有很多,NVelocity 就是一个例子,但最近我们在 CodePlex (http://razorengine.codeplex.com/) 上发布了 Razor 解析器的包装器,我认为值得一看进入。

    【讨论】:

      【解决方案3】:

      还有一个, StringTemplate Template Engine.

      不过,我关注的是 RezorTemplateEngine!

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2010-10-06
        • 2023-03-04
        • 1970-01-01
        • 1970-01-01
        • 2012-06-21
        • 1970-01-01
        • 2011-05-16
        • 1970-01-01
        相关资源
        最近更新 更多