RazorEngine String Layouts und Abschnitte?
Ich benutze einen Rasierapparat wie diesen:
<code>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; } } </code>
Der von mir verwendete Templating-Service wird injiziert, obwohl es sich nur um eine Standardimplementierung handelt:
<code> internal ITemplateService InstanceDefaultTemplateService() { ITemplateServiceConfiguration configuration = new TemplateServiceConfiguration(); ITemplateService service = new TemplateService(configuration); return service; } </code>
Da ich in diesem Fall vor allem E-Mails aus diesen Vorlagen erstellen werde. Ich möchte verwenden können@section
s für den Betreff der E-Mail und verschiedene Abschnitte des E-Mail-Texts. Dabei verwende ich ein Layout, in dem ich die Stile spezifiziere, die für die gesamte E-Mail-Struktur gelten (die wie eine der folgenden aussehen wird)MailChimpist wahrscheinlich).
Die Frage ist dann zweifach:
Wie kann ich Layouts in angeben?RazorEngine
?Wie kann ich diese Layouts aus Zeichenfolgen (oder einem Stream) angeben? Wie Sie sehen, verwende ich eingebettete Ressourcen zum Speichern der Rasierer-E-Mail-Vorlagen.AktualisierenVielleicht war mir nicht klar, aber ich beziehe mich auf dieRazorEngine Bibliothek.