Pregunta

No puedo encontrar algún ejemplo de cómo puedo usar el argumento -a cuando uso TextTransform.exe para generar código a partir de plantillas. En MSDN está la siguiente descripción para el argumento -a:

  

" Especifica un parámetro que una directiva   el procesador puede consultar como   par nombre / valor. La directiva   El procesador y el identificador son opcionales.   Esto permite especificar parámetros   para cualquier procesador directivo o cualquier   instancia de una directiva particular   procesador. "

Necesito algún conjunto de argumentos como cadena de conexión, etc. en mi plantilla. Mi idea era obtener una ruta al archivo de configuración con la ayuda del argumento -a.

Saludos Anton Kalcik

ACTUALIZACIÓN: para ser lo suficientemente claro, quiero leer los parámetros directamente en la plantilla.

¿Fue útil?

Solución

El Kit de herramientas de transformación de plantillas de texto (T4) es de Microsoft y no es muy compatible. Solo unos pocos ejemplos. Si desea obtener más información, vaya al blog Olegs Sychs . T4 se explica aquí muy profundamente.

Después de horas para intentar obtener parámetros de TextTransform.exe en mi plantilla, encontré una solución:

Agregue el atributo hostspecific = " true " al elemento template de la siguiente manera:

<#@ template language="C#v3.5" hostspecific="true"#>

Más adelante en la plantilla, puede llamar a ResolveParameterValue como mencionó Oleg.

Ejemplo:

<#

 string parameterTest = Host.ResolveParameterValue(null, null, "someKey");
 WriteLine(parameterTest);

#>

Llama al generador de plantillas, entonces:

"C:\Program Files\Common Files\Microsoft Shared\TextTemplating\1.2\TextTransform.exe" -a !!someKey!someValue

Después de generar debe estar en el archivo generado: 'someValue'

Otros consejos

El argumento -a acepta valores en el siguiente formato:

<ProcessorName>!<DirectiveID>!<ParameterName>

Estos también son los parámetros de ITextTemplatingEngineHost .ResolveParameterValue método al que debe llamar para obtener el valor del parámetro en el código de plantilla.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top