Come visto nello script #468, il motore di T4 di Visual Studio permette di creare qualunque tipo di file da una qualunque sorgente. In questo caso vediamo compe creare una classe C# partendo da una lista di stringhe.
<#@ template debug="true" language="C#" #> <#@ output extension=".cs" #> <# var properties = new string [] {"Nome", "Cognome", "Indirizzo"}; #> // static code class MyClass { <# // executed code: foreach (string propertyName in properties) { #> // Generated code: private string <#= propertyName #> { get; set; } <# } #> }
Ci sono diverse cose da notare in questo esempio. Innanzitutto, tramite la direttiva template (identificata dai marcatori di blocco <#@ #>) specifichiamo che possiamo eseguire il debug del template (attributo debug) e che il template usa il linguaggio C# (attributo language).
La seconda cosa da notare è che l'estensione del file è .cs quindi il template genera un file C#.
Passando al codice, viene creato un array di stringhe che rappresentano i nomi delle proprietà che vogliamo aggiungere a una classe. Questo codice viene eseguito a run time dal template quando lo lanciamo. Successivamente viene aggiunto al file la dichiarazione della classe e poi si rientra in un contesto di esecuzione di codice del template per generare una proprietà per ogni stringa dell'array creato in precedenza. Infine si esce dal codice di esecuzione e si chiude la classe.
Una volta lanciato il file, il template produce il seguente output.
class MyClass { private string Nome { get; set; } private string Cognome { get; set; } private string Indirizzo { get; set; } }
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Utilizzare il trigger SQL con le Azure Function
Criptare la comunicazione con mTLS in Azure Container Apps
Generare la software bill of material (SBOM) in GitHub
Creare una libreria CSS universale: Clip-path
Referenziare un @layer più alto in CSS
Eseguire operazioni sui blob con Azure Storage Actions
C# 12: Cosa c'è di nuovo e interessante
Definire stili a livello di libreria in Angular
.NET Conference Italia 2024
Esportare ed analizzare le issue di GitHub con la CLI e GraphQL
Migliorare la sicurezza dei prompt con Azure AI Studio
Creare un'applicazione React e configurare Tailwind CSS