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
Conoscere il rendering Server o WebAssembly a runtime in Blazor
Introduzione ai web component HTML
Testare il failover sulle region in Azure Storage
Integrare SQL Server in un progetto .NET Aspire
Gestire progetti NPM in .NET Aspire
Abilitare automaticamente il force push di un gruppo su Azure DevOps
Controllare la velocità di spostamento su una pagina HTML
Creare comandi nella dashboard .NET Aspire
Integrare Agenti A2A in Azure API Management
Combinare Container Queries e Media Queries
.NET Aspire per applicazioni distribuite
Utilizzare Intersect e Except per filtrare set di dati in TSql
I più letti di oggi
- Effettuare il backup dell'event viewer con LINQ to XML
- Eseguire query in contemporanea con EF
- Eliminare record doppi in Sql Server
- Eseguire query con LINQ
- Unire liste tramite il Metodo Union di LINQ
- Eseguire una query su file XML con LINQ
- Ottimizzare le performance di una query LINQ To SQL
- Eseguire una GroupBy per entity in Entity Framework
- Salvare una stringa XML in un file con LINQ To XML
- Loggare le query più lente con Entity Framework


