2013-07-26 22 views
7

Sto cercando di capire ConfigurationManager in .NET praticandolo in diversi scenari.Informazioni su ConfigurationManager in .NET

Ho due progetti: Project1 e Project2. Project2 utilizza Project1.

La mia situazione: Ho una sezione (serializedfilename) nel mio file app.config in project1. e ho questa riga di codice in un Class1 di project1

private static string SerializedConfiguration = ConfigurationManager.AppSettings["SerializedFilename"]; 

In Progetto2, ho chiamare un metodo nella classe 1 di progetto1 e sto ottenendo un'eccezione.

come .NET non sembra essere in grado di trovare le impostazioni nel file app.config di project1 quando chiamato da project2 anche se ho fatto riferimento a project1 in modo appropriato.

Tuttavia, quando sposto la sezione (serializedfilename) per app.config file progetto2 ... tutto sembra funzionare bene ...

Qualcuno può spiegarmi cosa sta succedendo qui? Sono tentato di presupporre che ConfigurationManager esista solo nel contesto dell'applicazione client (in questo caso project2) e non nell'applicazione originale (project1 in questo caso)

Nota: sono nuovo (1 mese + a .NET)

Grazie.

risposta

3

Quando si aggiunge un'app di riferimento. Il controllo non viene copiato. App.config deve essere nel progetto principale, nel tuo caso progetto 2. se lo aggiungi nel progetto 2 e lo chiami nell'oggetto di riferimento Progetto 1, non otterrai alcun errore dato che VS lo sceglierà dal tuo progetto principale.

+0

grazie Apprezzo – oliverdejohnson

1

Corretto, ConfigurationManager esamina l'assembly in esecuzione per app.config o web.config per le impostazioni di ricerca.

Quindi, se la DLL della libreria di classi che accede alle impostazioni di configurazione è in esecuzione in un progetto di sito Web, le impostazioni dell'app dovranno essere aggiunte a web.config, non a app.config della libreria di classi.

+0

Grazie. ma come mai la documentazione non ha detto così ... http: //msdn.microsoft.com/en-us/library/system.configuration.configurationmanager.aspx – oliverdejohnson