Obter valor do argumento de TextTransform.exe para o modelo
-
10-07-2019 - |
Pergunta
Eu não posso encontrado algum exemplo de como eu posso usar argumento -a quando eu uso TextTransform.exe para gerar o código a partir de modelos. Em MSDN está seguindo descrição para -a argumento:
"especifica um parâmetro que uma directiva processador pode consultar como um NOME / valor par. a directiva processador e identificador são opcionais. Isso permite que os parâmetros a serem especificadas para qualquer processador de diretriz ou qualquer exemplo de uma directiva específica processador. "
Eu preciso de algum conjunto de argumentos como seqüência de conexão e assim por diante no meu modelo. Minha idéia era fazer com que um caminho para a arquivo de configuração com ajuda de -a argumento.
Saudações Anton Kalcik
UPDATE:. Para ser clara o suficiente, eu quero ler parâmetros direto no template
Solução
Toolkit modelo de texto Transformação (T4) é da Microsoft não muito bem apoiado. Apenas alguns exemplos. Se você quiser saber mais vá para Olegs Sychs blogue . T4 é aqui profundamente explicou.
Depois de horas a tentar obter parâmetros de TextTransform.exe no meu modelo Eu encontrei uma solução:
Adicionar atributo hostspecific="true"
ao elemento template
da seguinte forma:
<#@ template language="C#v3.5" hostspecific="true"#>
Mais tarde, no modelo que você pode chamar ResolveParameterValue
como Oleg mencionado.
Exemplo:
<#
string parameterTest = Host.ResolveParameterValue(null, null, "someKey");
WriteLine(parameterTest);
#>
Você chamar modelo gerador assim:
"C:\Program Files\Common Files\Microsoft Shared\TextTemplating\1.2\TextTransform.exe" -a !!someKey!someValue
Depois de geração deve estar no arquivo gerado: 'someValue'
Outras dicas
O argumento -a aceita valores no seguinte formato:
<ProcessorName>!<DirectiveID>!<ParameterName>
Estes são também os parâmetros de ITextTemplatingEngineHost .ResolveParameterValue método que você precisa chamar a fim de obter o valor do parâmetro no código do modelo.