1

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

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

我想要做的事,如:

var customerTemplateData = GetTemplateDate(customer); 
var htmlBody = templateEngine.Render("template.html", customerTemplateData); 
var textBody = templateEngine.Render("template.txt", customerTemplateDate); 
SendMail("[email protected]", customer.Email, "Hey there!", htmlBody, textBody); 

,我想用复杂的嵌套数据,大量的名单里面名单,长达一分钟1000次做到这一点。

专用的模板引擎或方法在单机环境下运行的Web视图引擎的任何建议将最赞赏:)

感谢,

迪伦

回答

3

如果您正在寻找一些关于如何使用Spark实现此功能的指导,Spark源代码中提供了功能齐全的Email and Text Templating Sample available here

应该注意的是,实际上这个示例对HttpContext或任何其他Web基础结构没有依赖关系。它完全独立,可以像控制台应用程序一样轻松地运行。

希望这有助于
一切顺利,
罗布

+0

我终于设法让Spark做我所需要的,但它花了一些黑客攻击 - 对核心库进行了两处微小更改,并将SparkSettings直接注入引擎而不是依赖App.config文件(出于某种原因它无法加载控制台应用程序中的SparkConfiguration处理程序?) 工作代码在我的Github fork中;接受我的拉取请求,我会接受你的回答。 :) – 2010-11-22 22:15:16

+0

我已经有拉请求在标签中打开:)只是等待一段时间来正确地通过它 - 但它看起来非常好。感谢您的贡献 - 这比接受的答案更有价值;) – RobertTheGrey 2010-11-25 00:10:28

+0

确定它已被拉入,所以您现在可以参考主要的回购。再次感谢贡献。不需要更改核心库,但是我修正了您的示例以正确使用它。玩得开心! :) – RobertTheGrey 2010-11-25 23:09:03

2

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

+0

嗯,我有投票这件事! – Buildstarted 2010-11-21 02:17:33

相关问题