Comment puis-je passer un paramètre de chaîne à un modèle t4
Salut, je suis en train d'essayer de trouver un moyen de passer un normal chaîne comme paramètre d'un modèle de texte.
C'est mon Modèle de code, si quelqu'un pouvait me dire ce que j'aurais besoin d'écrire en c# pour passer mes paramètres et créer le fichier de classe. Ce serait très utile, Merci.
<#@ template debug="false" hostspecific="true" language="C#" #>
<#@ output extension=".cs" #>
<#@ assembly name="System.Xml" #>
<#@ assembly name="EnvDTE" #>
<#@ import namespace="System.Xml" #>
<#@ import namespace="System.Collections.Generic" #>
<#@ parameter name="namespacename" type="System.String" #>
<#@ parameter name="classname" type="System.String" #>
<#
this.OutputInfo.File(this.classname);
#>
namespace <#= this.namespacename #>
{
using System;
using System.Collections.Generic;
using System.Linq;
using System.Xml;
///<summary>
///This class describes the data layer related to <#= this.classname #>.
///</summary>
///<history>
/// <change author=`Auto Generated` date=<#= DateTime.Now.ToString("dd/MM/yyyy") #>>Original Version</change>
///</history>
public partial class <#= this.classname #> : DataObject
{
#region constructor
///<summary>
///A constructor which allows the base constructor to attempt to extract the connection string from the config file.
///</summary>
public <#= this.classname #>() : base() {}
///<summary>
///A constructor which delegates to the base constructor to enable use of connection string.
///</summary>
///<param name='connectionstring`></param>
public <#= this.classname #>(string connectionstring) : base(connectionstring) {}
#endregion
}
}
OriginalL'auteur Toby Jackson | 2013-04-11
Vous devez vous connecter pour publier un commentaire.
Ce qui suit est un moyen de passer des paramètres:
Exemple de code (Remplacer le ResolvePath avec l'emplacement de votre tt fichier):
J'ai vu ce exemple sur Oleg Sych du blog, ce qui est une excellente ressource pour les t4.
OriginalL'auteur Rafi
C'est un enfant de 3 ans la question et je ne sais pas combien la création de modèles de bibliothèques ont évolué et si ma solution pour le problème s'applique à des versions antérieures de Visual Studio et/ou .Etc NET. Je suis actuellement à l'aide de Visual Studio 2015 et .NET 4.6.1.
Sommaire
Utiliser une "caractéristique de la Classe du bloc de contrôle" pour déclarer les membres publics de la classe générée de votre modèle et de se référer à ces publics des membres de votre modèle de texte.
Exemple
Dans un projet C#, sélectionnez Ajouter un Nouvel Élément > Runtime Modèle de Texte > "formule de politesse.tt". Vous obtenez un nouveau .tt fichier par défaut suivants déclarations:
Ci-dessous les déclarations de saisir votre modèle de texte:
À la fin de l' .tt fichier ajouter vos paramètres en tant que public, les membres de la classe à l'intérieur d'une "caractéristique de la Classe du bloc de contrôle". Ce bloc doit aller à la fin du fichier.
Alors, par exemple, dans une Application Console, vous pouvez utiliser votre modèle comme suit:
Et obtenir le résultat suivant:
Pour plus d'informations sur le T4 de la syntaxe, consultez l'article MSDN La rédaction d'un Modèle de Texte T4.
il travaille toujours pour moi. Juste essayé les étapes exactes de mon exemple dans un nouveau projet console en VS2017. Nouveau Projet > Visual C# > le Bureau Classique de Windows > Console d'Application (.NET Framework) à l'aide d' .NET 4.7.1. La T4 est toujours pris en charge. Peut-être que vous essayez dans un .NET de Base du projet. Je ne pense pas que T4 est pris en charge dans le Noyau. Mais personnellement, je l'ai passé à dotliquid depuis quelques mois maintenant et je suis très heureux avec elle. Vous devriez essayer! Et il fonctionne avec le Noyau.
merci pour la suggestion 🙂
OriginalL'auteur pkpapani