Question

Je ne trouve pas d'exemple qui explique comment utiliser l'argument -a lorsque j'utilise TextTransform.exe pour générer du code à partir de modèles. Dans MSDN , la description suivante de l'argument -a:

  

" Spécifie un paramètre qu'une directive   le processeur peut demander en tant que   paire nom / valeur. La directive   le processeur et l'identifiant sont facultatifs.   Cela permet aux paramètres d'être spécifiés   pour tout processeur de directive ou tout   exemple d'une directive particulière   processeur. "

J'ai besoin d'un ensemble d'arguments comme une chaîne de connexion, etc. dans mon modèle. Mon idée était d’obtenir un chemin vers le fichier de configuration à l’aide de l’argument -a.

Cordialement Anton Kalcik

UPDATE: Par souci de clarté, je veux lire les paramètres directement dans le modèle.

Était-ce utile?

La solution

La boîte à outils de transformation de modèles de texte (T4) n’est pas très bien supportée par Microsoft. Quelques exemples seulement. Si vous souhaitez en savoir plus, consultez le le blog Olegs Sychs . Le T4 est ici très expliqué.

Après des heures passées à essayer d'obtenir des paramètres de TextTransform.exe dans mon modèle, j'ai trouvé une solution:

Ajoutez l'attribut hostspecific = " true & <; code> à l'élément template comme suit:

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

Plus tard dans le modèle, vous pourrez appeler ResolveParameterValue comme indiqué par Oleg.

Exemple:

<#

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

#>

Vous appelez un générateur de modèle pour:

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

Après la génération devrait être dans le fichier généré: 'uneValeur' ??

Autres conseils

L'argument -a accepte les valeurs au format suivant:

<ProcessorName>!<DirectiveID>!<ParameterName>

Ce sont également les paramètres de ITextTemplingEngineHost Méthode .ResolveParameterValue que vous devez appeler pour obtenir la valeur du paramètre dans le code du modèle.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top