Generar plantillas desde otras plantillas mediante secuencias de escape

Puede crear una plantilla de texto que cree otra plantilla de texto como su salida de texto generada. Para ello, debe usar secuencias de escape para delinear las etiquetas de la plantilla de texto. Si no usa secuencias de escape, la plantilla de texto generada tendrá un significado predefinido. Para más información sobre el uso de secuencias de escape en plantillas de texto, consulte Usar secuencias de escape en las plantillas de texto.

Para generar una plantilla de texto a partir de una plantilla de texto

  • Use la barra diagonal inversa (\) como carácter de escape para generar las etiquetas de marcado necesarias dentro de la plantilla de texto para directivas, instrucciones, expresiones y características de clase en un archivo de plantilla de texto independiente.

    \<#@ directive \#>
    \<# statement \#>
    \<#= expression \#>
    \<#+ classfeature \#>
    

Ejemplo

En el ejemplo siguiente se usan caracteres de escape para generar una plantilla de texto a partir de una plantilla de texto. La directiva output establece el tipo de archivo de destino en el tipo de archivo de plantilla de texto (.tt).

\<#@ output extension=".tt" \#>
\<#@ assembly name="System.Xml.dll" \#>
\<#@ import namespace="System.Xml" \#>
\<#
XmlDocument xDoc = new XmlDocument();
//System.Diagnostics.Debugger.Break();
    xDoc.Load(@"E:\CSharp\Overview.xml");
    XmlAttributeCollection attributes = xDoc.Attributes;
    if (attributes != null)
    {
       foreach (XmlAttribute attr in attributes)
       {\#>
           \<#= attr.Name \#>
       \<#}
     }
\#>

La salida de texto generada es una plantilla de texto.

<#@ output extension=".tt" #>
<#@ assembly name="System.Xml.dll" #>
<#@ import namespace="System.Xml" #>
<#
XmlDocument xDoc = new XmlDocument();
//System.Diagnostics.Debugger.Break();
    xDoc.Load(@"E:\CSharp\Overview.xml");
    XmlAttributeCollection attributes = xDoc.Attributes;
    if (attributes != null)
    {
       foreach (XmlAttribute attr in attributes)
       {#>
           <#= attr.Name #>
       <#}
     }
#>