1

.NETコンソールアプリケーションから、テンプレート化されたコンテンツ(この場合はテキストとHTML形式のパーソナライズド電子メール)を高速かつ柔軟に生成する方法を探しています。.NETコンソールアプリケーション用の優れたテンプレートエンジンは何ですか?

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("[email protected]", customer.Email, "Hey there!", htmlBody, textBody); 

を、私は千回分までの複雑なネストされたデータ、リスト内のリストの多く、でそれをやってみたいです。専用のテンプレートエンジン用またはスタンドアロンコンテキストでWebビューエンジンを実行する方法のための任意の勧告が最も高く評価されるだろう

:)

おかげで、

ディラン

答えて

3

Sparkでこれを達成する方法についてのガイダンスをお探しの場合は、Sparkのソースコードに完全に機能するEmail and Text Templating Sample available hereがあります。

実際にこのサンプルがHttpContextやその他のWebインフラストラクチャに依存することはありません。これは完全に独立しており、コンソールアプリケーションと同じように簡単に実行できます。このことができます

希望、
すべてのベスト、
ロブ

+0

私は最終的にSparkに必要なことをさせることができましたが、ちょっとしたハッキン​​グが必要でした.Apple.configファイルに頼るのではなく、コアライブラリに2つの小さな変更が加えられ、SparkSettingsが直接エンジンに注入されましたコンソールアプリケーションでSparkConfigurationハンドラをロードできませんでしたか?) ワーキング・コードは私のGithubフォークにあります。私のプルリクエストを受け入れ、私はあなたの答えを受け入れるでしょう。 :) –

+0

私はタブでプルreqを開いている:)ちょうどそれを適切に通過するいくつかの時間を得るために待っている - しかし、それは非常によく見ている。お寄せいただきありがとうございます - それは受け入れられた回答よりも貴重です) – RobertTheGrey

+0

OKです。これでメインのレポを参照できるようになりました。貢献に感謝します。コアlibに変更は必要ありませんが、サンプルを正しく使用するように修正しました。それを楽しみましょう! :) – RobertTheGrey

2

かなりの数の方法があります。コマンドラインからテンプレート化されたコンテンツを作成するには、NVelocityが例ですが、最近私たちはCodePlex(http://razorengine.codeplex.com/)のRazorパーサーのラッパーを公開しています。

+0

まあ、私は持ってこれを投票します! – Buildstarted