2016-06-23 42 views
5

Come posso ottenere una chiave da web.config nel progetto API nel mio progetto di interfaccia utente TypeScript? Ho provato quanto segue ma nulla ottiene l'accesso al file di configurazione che posso dire:Come ottenere la chiave da web.config in TypeScript?

apiUrl: string = '@System.Configuration.ConfigurationManager.AppSettings["ApiUrl"]'; 

Questo non funziona neanche:

apiUrl: string = "@ConfigurationManager.AppSettings['ApiUrl']"; 

Ho anche provato ogni combinazione di citazioni se singolo o doppio, senza risultato. Qualche idea su come ottenere un valore dal file web.config in TypeScript?

risposta

0

Generalmente non è una buona idea provare ad accedere ai file di configurazione da altri assiemi/progetti, poiché in genere non vengono inviati alla stessa directory quando compilati.

Poiché TypeScript è transpiled in JavaScript, non è possibile leggere direttamente da un file di configurazione, indipendentemente da dove si trova.

Se si desidera cambiare dinamicamente gli URL per un servizio (ad esempio da un endpoint DEV ad un QA o di produzione finale), è possibile utilizzare Razor Sintassi nel file HTML/CSHTML per afferrare il valore dal file di configurazione e quindi immettere il valore negli script, O è possibile utilizzare PowerShell durante la distribuzione per sostituire i valori nei file TypeScript durante il processo di generazione.

# Argument passed into PowerShell script (or write out URL string manually). 
$NewURL1 = $args[0]; 
$NewURL2 = "http://goodURL.com/api"; 

# *.js files, because your *.ts files will already be transpiled. 
$files = gci "C:\MyProject\DropFolder" -recurse -include "exampleWithBadURL.js", "otherFile.js"; 

Foreach ($file in $files) 
{ 
    $fileContent = Get-Content($file) -Raw; 
    attrib $file -r; 

    # Perform the replacement. 
    $fileContent -replace "http://localhost:38774/", $NewURL1 | Out-File $file; 
    $fileContent -replace "http://badURL.com/api/", $NewURL2 | Out-File $file; 

    Write-Output($file.FullName); 
} 

Se l'agente di generazione/rilascio lo consente, è possibile eseguire questo script PowerShell quando si distribuisce il codice in un ambiente specifico. Uso uno script simile in VSTS/TFS nella definizione di versione dopo il. Copio i file.