Come utilizzare T4 e Visual Studio per Estendere una Classe Parziale

StackOverflow https://stackoverflow.com/questions/376428

  •  22-08-2019
  •  | 
  •  

Domanda

Ho voluto utilizzare T4 per generare le proprietà di una classe parziale.Sto correndo in un problema di configurazione in cui la mia .TT file è lo stesso progetto del file di classe voglio estendere.Quindi, se devo includere l'assemblea, nel .TT file di esso si è bloccato.Ho provato a fare una riga di comando nel pre-build, ma il problema è che la VS sempre voglia di ricompilare il .TT file con il progetto.

L'unica soluzione che posso pensare è quello di rinominare il .tt i file da dire .t4 e quindi utilizzare un pre-compilazione di comando con TextTransform per creare la .cs file nella directory del progetto.

Qualcuno può pensare a un modo più pulito per fare questo?

È stato utile?

Soluzione

Supponendo che il blocco è causato dal vostro modello di utilizzo di Riflessione per leggere i metadati di classe parziale è necessario estendere, si potrebbe risolvere il problema del blocco se si utilizza CodeModel.Questa API è fornito da Visual Studio e consente di ottenere i metadati direttamente dal file di origine, senza la necessità di compilare la classe parziale o caricare la DLL compilata.Ecco un esempio di un T4 generatore di codice che utilizza questo approccio: http://www.olegsych.com/2008/07/t4-template-for-generating-sql-view-from-csharp-enumeration

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top