2013-03-14 10 views

risposta

6

Un modello con hostpecific impostato su "true" può accedere a un membro this.Host di tipo ITextTemplatingEngineHost (MSDN). Puoi quindi utilizzare per es. il suo metodo "ResolvePath" per individuare i file necessari per l'inserimento nel modello.

Questo è ancora più utile quando si utilizza un motore di template personalizzato. blog di See Oleg qui: http://www.olegsych.com/2008/02/t4-template-directive/

+0

Il collegamento 'Olegsych' non è più valido – Tatranskymedved

4

È possibile utilizzare la proprietà 'this.Host' una volta che la bandiera HostSpecific è impostato, che è di tipo ITextTemplatingEngineHost e ti permette di fare la risoluzione percorso del file tra le altre cose.

Tuttavia, se utilizzato in Visual Studio (non al momento della compilazione o dalla riga di comando), è anche possibile eseguire il cast dell'host su IServiceProvider ed essere connessi al provider di servizi globale di Visual Studio.

Ciò consente di utilizzare qualsiasi API di Visual Studio per trovare i dati per il modello o modificare il progetto in cui sei incluso o azioni simili.

Uno scenario chiave che consente è l'utilizzo di CodeModel (o presto Roslyn) per analizzare il codice sorgente in tempo reale nel progetto e utilizzarlo come origine per i metadati di generazione.