Qualcuno ha un buon esempio o classe di supporto che mi consenta di leggere la stringa di connessione in un'applicazione Web da un modello T4 che risiede in UN ALTRO assieme a cui fa riferimento l'applicazione Web. Sto generando del codice dal database a cui fa riferimento e vorrei chiedere aiuto su come ottenere la stringa di connessione per questo uso. ive leggere l'esempio di George Js here tuttavia funziona solo quando il modello risiede nell'app Web, per favore aiuto !!!leggere web.config da un altro assieme utilizzando t4
risposta
var path = Host.ResolvePath(@"../Web.config");
var map = new ExeConfigurationFileMap { ExeConfigFilename = path };
var config = ConfigurationManager.OpenMappedExeConfiguration(
map,ConfigurationUserLevel.None);
var appSettings = config.AppSettings;
var connectionStrings = config.ConnectionStrings.ConnectionStrings;
Si potrebbe provare a fare qualcosa di simile:
var config = ConfigurationManager.OpenExeConfiguration("../somePathTo/web.config")
// use the config to get values like: config.AppSettings
hey rob, il modello t4 viene eseguito con uno strumento personalizzato e quindi i percorsi relativi non funzionano come nel contesto dello strumento e non nel progetto. –
Se si chiama Assembly, è possibile eseguire sth. In questo modo: Nuovo Uri (Assembly.GetCallingAssembly(). CodeBase) .AbsolutePath Ciò funzionerebbe solo se lo strumento personalizzato utilizza chiamate API per eccedere T4. Potrebbe essere il tuo strumento personalizzato in grado di fornire qualche tipo di parametro del percorso o scrivere le informazioni sul percorso in una sorta di archivio dati condiviso. (XML-File della directory excecuting)? Sarebbe bello avere maggiori informazioni. – Robert
questo è il risultato della chiamata sopra a <# = System.Reflection.Assembly.GetCallingAssembly(). CodeBase #> file: /// C: /Windows/Microsoft.Net/assembly/GAC_MSIL/Microsoft.VisualStudio. TextTemplating.10.0/v4.0_10.0.0.0__b03f5f7f11d50a3a/Microsoft.VisualStudio.TextTemplating.10.0.dll –
dopo un po 'di ricerca in giro Ive ha trovato la mia risposta in t4 si può usare
path = Host.ResolvePath(relativeFileName)
- 1. Esecuzione modelli T4 da altro modello T4
- 2. Leggere web.config da JavaScript
- 3. Impossibile fare riferimento a un assieme in un modello T4
- 4. : impossibile serializzare un oggetto proveniente da un altro assieme
- 5. Come leggere la sezione system.web da web.config
- 6. Il controller non è stato caricato da un altro assieme?
- 7. Determinare le versioni di assieme utilizzate da/referenziate in un altro assieme
- 8. Leggere ConnectionString da Web.Config in ASP.Classic
- 9. Un web.config può leggere da un file xml esterno?
- 10. Come leggere system.net/mailSettings/smtp da web.config
- 11. Come leggere app.config da un altro assembly?
- 12. Trova tutte le risorse incorporate in un altro assieme
- 13. Assieme al codice C
- 14. Leggere web.config dalla libreria utilizzata dalla webapplication distribuita utilizzando IIS
- 15. Leggi variabile da Web.Config
- 16. passare un array di byte al codice T4 modello in un altro array dello stesso tipo
- 17. Nessun altro dato da leggere dall'errore socket
- 18. grep utilizzando l'uscita da un altro comando
- 19. Ripping XAML da un. Assieme N.
- 20. Leggere valori web.config in ASP classico
- 21. Come si usa T4 per trasformare le classi da un progetto a un altro?
- 22. Ottieni tutte le Culture supportate da un assieme satellite
- 23. Override machine.config da web.config
- 24. Come leggere il valore di sistema da web.config e utilizzarlo nel metodo ASP.NET MVC C#
- 25. Leggere i dati da un file di testo utilizzando Java
- 26. Impossibile leggere un file da HDFS utilizzando Spark
- 27. Come leggere OTTENERE dati da un URL utilizzando JavaScript?
- 28. Leggere un file CSV e creare un altro file CSV utilizzando PHP
- 29. Esecuzione di un modello T4 mediante C#
- 30. Possiamo costruire un assieme sia da CodeExpressions sia da codice sorgente letterale allo stesso tempo?
così vediamo se i capisci lo scenario ... hai una web app. si dispone di un modello che è possibile modificare ma è compilato in un assembly di riferimento separato. Quando esegui la trasformazione, vuoi essere in grado di leggere il web.config dell'app web di riferimento? secondo dettaglio necessario: come si esegue il modello? interattivo da VS o programmaticamente @ runtime? Se riesci a chiarire queste domande, sono fiducioso che si possa avere una soluzione semplice. –
Sei azzeccato. il modello è in un'associazione referenziata diversa dall'app web effettiva, per rispondere alla tua domanda in un primo momento solo per essere in grado di eseguirlo in modo interattivo in fase di progettazione in vs .. per ora. Stiamo studiando una build integrata, abbiamo svn in esecuzione e la costante modifica della stringa di connessione dei template ci sta guidando in modo indolente (db è nella cartella app_data). Sto cercando un modo per fare riferimento al db nella cartella app_data usando percorsi relativi (o assoluti) per ottenere il file stesso. –