埋め込みNVelocityテンプレートに基づいて電子メールを生成しており、動的に含まれるセクションで何かしたいと思います。だから私の埋め込まれたリソースは、このようなものです:NVelocity - 組み込みリソースを使用した#parse
DigestMail.vm _Document.vm _ActionItem.vm _Event.vm
オブジェクトのリストを取得し、一緒にこれらのそれぞれを通過します私のメールルーチンDigestMail.vmへの適切なビュー:
public struct ItemAndView
{
public string View;
public object Item;
}
private void GenerateWeeklyEmail(INewItems[] newestItems)
{
IList<ItemAndView> itemAndViews = new List<ItemAndView>();
foreach (var item in newestItems)
{
itemAndViews.Add(new ItemAndView
{
View = string.Format("MyAssembly.MailTemplates._{0}.vm", item.GetType().Name),
Item = item
});
}
var context = new Dictionary<string, object>();
context["Recipient"] = _user;
context["Items"] = itemAndViews;
string mailBody = _templater.Merge("MyAssembly.MailTemplates.DigestMail.vm", context);
}
そして、私のDigestMail.vmテンプレートでは、私はこのようなものを持っている:
#foreach($Item in $Items)
====================================================================
#parse($Item.viewname)
#end
しかし、このような埋め込みリソースへのパスが与えられたら、それを#parseすることはできません。これらの埋め込まれたテンプレートのそれぞれを解析する方法を教えてください。