2008-10-02 11 views
9

Nel mio progetto ho funzionalità che viene utilizzata come applicazione Web e come applicazione console (da avviare dall'utilità di pianificazione). Per fare ciò inserisco il codice comune in una DLL che viene utilizzata sia dall'applicazione Web sia dall'applicazione console. Funziona beneInserire le informazioni di configurazione in una DLL

Tuttavia, la console e le applicazioni Web ora hanno un App.config e Web.config che sono per lo più identici. È possibile inserire questa configurazione anche nella DLL e renderla disponibile per entrambe le applicazioni?

risposta

7

Sì, è possibile e necessario inserire le impostazioni di configurazione comuni nel file di configurazione per la DLL. Basta aggiungere un file app.config al progetto DLL e assicurarsi di leggere le impostazioni di configurazione dall'interno della DLL. Una volta distribuito, il file di configurazione deve avere il nome "MyDLL.dll.config" (presupponendo che la DLL sia denominata "MyDLL.dll") e si trovi nella stessa cartella della DLL.

+9

Che cosa è se è nel GAC? – Ryu

+0

in che modo la dll si riferirà al file di configurazione? Come saprà la posizione del file di configurazione? – BKSpurgeon

+0

@BKSpurgeon: non * sa * che il file di configurazione si trova nella stessa cartella della DLL - è solo il primo posto in cui lo cerca. Ecco perché non devi specificare il percorso del file di configurazione ovunque all'interno della DLL. – MusiGenesis

1

Suggerirei di spostare la configurazione in caricamento sulla dll piuttosto che sull'intera configurazione e quindi chiamarla dalle diverse app. Questo è così che:

  1. Non è necessario ricompilare per modificare i dati di configurazione (sempre utile)
  2. Se è necessario dividere ancora una volta la configurazione in futuro, questo sarà già possibile con la dll.
0

si potrebbe mettere la configurazione comune sotto il registro di Windows, accessibile ovunque ti piace

+0

Un po 'difficile da implementare su una nuova macchina. – MusiGenesis

+0

solo se si schiera a mano. inoltre, i valori predefiniti per la prima volta potrebbero essere inseriti dal primo che li legge –

0

Supponendo che si sta utilizzando NET, è possibile impostare un file .settings per memorizzare i dati di configurazione - i dati contenuti ci saranno memorizzati come valori predefiniti per tali voci di configurazione, quindi anche se non esiste un file app.config, l'applicazione verrà eseguita con tali valori predefiniti.

Non sto dicendo che è una buona cosa ... 8)

Quindi, se si genera un progetto che fa riferimento la DLL, si dovrebbe aggiungere il file stessi .settings a tale progetto e apparirebbero tali impostazioni nel file app.config per l'app e la DLL sarebbe in grado di leggere quei valori. SE questi valori non sono in app.config, la dll ricadrà sui valori predefiniti.

La maggior parte delle persone penserà che sia una brutta cosa e io tendo ad essere d'accordo ma ci sei.