Использование T4 для создания тела письма в формате HTML в VS2010 - PullRequest
1 голос
/ 10 июня 2011

Я новичок в преобразовании текста .NET и пытаюсь использовать t4 для создания динамического тела письма.

Итак, чтобы дать вам пример, у меня есть подпрограмма, которая строит некоторую строку, как показано ниже. Как бы я преобразовать это в шаблон T4 вместо строки StringBuilder. Это будет шаблон времени исполнения или шаблон времени разработки?

private string BuildClosingContents(string legalBrand, string legalPhone, 
                                    string legalURL, string transText, string instructText, MyMail.Setting emailConfig)
{
    StringBuilder sbHTML = new StringBuilder();
    sbHTML.AppendLine("<div id=\"closingText\">");
    if (emailConfig.Mode == "Q")
    {
        sbHTML.AppendLine("Please call me on " + legalPhone + " and we will arrange ");
        sbHTML.AppendLine("everything for you. Please have your ticket details to hand ");
        sbHTML.AppendLine("and your " + instructText + " will be required. In the meantime if you have any questions ");
        sbHTML.AppendLine("please do not hesitate to call me.");
        sbHTML.AppendLine("<br /><br />");
    }
    else
    {
        sbHTML.AppendLine("If you have any queries relating to your quote " + transText + " please do not hesitate ");
        sbHTML.AppendLine("to contact your conveyancer or me.");
        sbHTML.AppendLine("<br /><br />");
    }

    // Signature + branding
    sbHTML.AppendLine("Yours sincerely");
    sbHTML.AppendLine("<br />");
    sbHTML.AppendLine("<img src=\"" + legalURL + "/images/agent_sign.jpg\" width=\"80\" height=\"74\" alt=\"\"><br />");
    //sbHTML.AppendLine(legalBrand + " Services<br />");
    sbHTML.AppendLine("</div>");

    // Return the closing content
    return sbHTML.ToString();
}

Каковы наилучшие способы вывести эти вспомогательные текстовые процедуры simillar из логики ядра приложения и создать гибкие html-строки для тела письма через файл шаблона t4 - Спасибо

Ответы [ 2 ]

3 голосов
/ 10 июня 2011

Простой пример:

<#@ template language="C#" #>
The first string is <#= this.FirstString #>.
<# if (!string.IsNullOrEmpty(this.SecondString)) { #>The second string is <#= this.SecondString #>.<# } #>
<#+ 

public string FirstString { get; set; }
public string SecondString { get; set; }

#>

Если файл называется MyTemplate.tt, то его можно использовать следующим образом:

var template = new MyTemplate() {
    FirstString = "Test"
};

var text = template.TransformText();

Можно найти хороший учебник здесь .

0 голосов
/ 16 июня 2011

Для этой цели вы бы использовали шаблон времени исполнения (или предварительно обработанный), так как это единственный вид, который можно включить в ваше приложение. Напротив, время разработки выполняется внутри Visual Studio.

...