1

Мы ищем быстрый и гибкий способ создания шаблонного контента (в данном случае персонализированных сообщений электронной почты в текстовом и HTML-формате) из консольного приложения .NET.Что такое хороший шаблон для консольного приложения .NET?

У нас нет VirtualPathProvider и нет действительного HttpContext.Current, что из наших первоначальных экспериментов означает, что очень сложно использовать механизм просмотра WebForms и любой другой механизм просмотра веб-страниц .NET (Spark , Razor) понадобятся обширная сантехника, чтобы заставить их думать, что они работают в веб-приложении.

Я хочу сделать что-то вроде:

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 раз в минуту.

Любые рекомендации для специальных шаблонов двигателей или для способов запуска веб-просмотра двигателей в автономном контексте были бы весьма признательны :)

Спасибо,

Дилан

ответ

3

Если вы ищете какое-то руководство по тому, как вы достигнете этого с помощью Spark, в исходном коде Spark есть полностью функциональный Email and Text Templating Sample available here.

Следует отметить, что на самом деле нет зависимости от этого образца в HttpContext или любой другой веб-инфраструктуре. Он полностью независим и может легко работать как консольное приложение.

Надеется, что это помогает,
Все самое лучшим,
Роб

+0

Наконец-то мне удалось заставить Spark делать то, что мне нужно, но потребовалось немного взлома - две крошечные изменения в основной библиотеке и впрыск SparkSettings прямо в движок вместо того, чтобы полагаться на файл App.config (по какой-то причине он не смог загрузить обработчик SparkConfiguration в консольном приложении?) Рабочий код в моей вилке Github; примите мой запрос на тягу, и я приму ваш ответ. :) –

+0

У меня есть вытащить req на вкладке :) Просто ждать, чтобы получить некоторое время, чтобы правильно пройти через нее - но это выглядит очень хорошо. Спасибо за вклад, который более ценен, чем принятый ответ;) – RobertTheGrey

+0

OK, он втянут, так что вы можете вернуть основное репо сейчас. Еще раз спасибо за вклад. Никаких изменений в основной библиотеке не требуется, но я исправил ваш образец, чтобы использовать его правильно. Получайте удовольствие от этого! :) – RobertTheGrey

2

Есть довольно много способов создание шаблонного контента из командной строки, пример NVelocity, но также недавно мы выпустили нашу обертку анализатора Razor на CodePlex (http://razorengine.codeplex.com/), который, на мой взгляд, стоит посмотреть.

+0

Ну я должен голосовать это! – Buildstarted

Смежные вопросы