Разметка строк и разделы RazorEngine?

Я использую такой движок бритвы:

public class EmailService : IService
{
    private readonly ITemplateService templateService;

    public EmailService(ITemplateService templateService)
    {
        if (templateService == null)
        {
            throw new ArgumentNullException("templateService");
        }
        this.templateService = templateService;
    }

    public string GetEmailTemplate(string templateName)
    {
        if (templateName == null)
        {
            throw new ArgumentNullException("templateName");
        }
        Assembly assembly = Assembly.GetAssembly(typeof(EmailTemplate));
        Stream stream = assembly.GetManifestResourceStream(typeof(EmailTemplate), "{0}.cshtml".FormatWith(templateName));
        string template = stream.ReadFully();
        return template;
    }

    public string GetEmailBody(string templateName, object model = null)
    {
        if (templateName == null)
        {
            throw new ArgumentNullException("templateName");
        }
        string template = GetEmailTemplate(templateName);
        string emailBody = templateService.Parse(template, model, null, null);
        return emailBody;
    }
}

Служба шаблонов, которую я использую, внедряется, хотя это всего лишь реализация по умолчанию:

    internal ITemplateService InstanceDefaultTemplateService()
    {
        ITemplateServiceConfiguration configuration = new TemplateServiceConfiguration();
        ITemplateService service = new TemplateService(configuration);
        return service;
    }

Поскольку в данном случае, в частности, я будут создавать электронные письма из этих шаблонов. Я хочу иметь возможность использовать @sectionдля темы электронной почты и различных разделов тела электронной почты, используя макет, в котором я указываю стили, общие для всей структуры электронной почты (, которая будет выглядеть как один из MailChimp вероятно ).

Тогда возникает двоякий вопрос:

  • Как я могу указать макеты в RazorEngine?
  • Как указать эти макеты из строк (или потока )? поскольку, как вы видите, я использую встроенные ресурсы для хранения шаблонов электронной почты Razor.

Обновление

Возможно, я не совсем понял, но я имею в виду библиотекуRazorEngine .

19
задан Erik Philips 13 August 2013 в 07:53
поделиться