2011-11-05 6 views

risposta

8

Generalmente una classe nella libreria non dovrebbe leggere direttamente web.config e prendere le impostazioni nel costruttore.

Tuttavia è accettabile per la libreria in alcuni scenari leggere direttamente il file web.config. Per questo si può definire un custom configuration section o utilizzare WebConfigurationManager.AppSettings

È necessario aggiungere riferimento System.Web montaggio e è necessario includere il namespace System.Web.Configuration nel file in cui si desidera utilizzare Configuration Manager.

+0

favore potete scrivere del codice per questo, perché ho ottenuto il codice dal tuo link, ma ancora WebConfigurationManager non mostrato in intelligenza dello studio –

+0

@Muhammad - Puoi approfondire questo commento? << Generalmente una classe nella libreria non dovrebbe leggere direttamente web.config e prendere le impostazioni nel costruttore. >> Perché è quello? Ho assunto architettonicamente questo era ok in quanto la libreria di classi viene caricata nel contesto dell'host dell'applicazione web. – Howiecamp

+0

se collaudi la tua classe, non avrai un web.config per nutrirlo, anche le librerie sono utility generalmente riutilizzabili che non dovrebbero essere legate alla piattaforma o al contesto in cui vengono eseguite, a meno che tu non abbia una libreria specifica è solo per le applicazioni basate sul web, in tal caso è possibile definire la propria sezione di configurazione, poiché la configurazione è di proprietà dell'applicazione e non della libreria. –

0

spostare le impostazioni di configurazione della libreria di classi su web.config.

1

È meglio se si può spostare quella classe lontano dalla libreria di classi, ma se non si può o non si vuole farlo, allora si può lavorare con System.Configuration.

1) Aggiungere un riferimento a System.Configuration.

2) Utilizzare ConfigurationManager anziché WebConfigurationManager; il codice sarà quasi lo stesso, basta sostituire WebConfigurationManager con ConfigurationManager.

0

Ho avuto lo stesso problema, presumo che si desideri utilizzare lo ConfigurationManager per accedere ad alcune proprietà nel file di configurazione.

Un'alternativa è aggiungere un file di impostazioni al progetto. Questo è ciò che ho fatto nel mio progetto:

  1. Fare clic con il pulsante destro del mouse sul nome del progetto, andare al collegamento Proprietà nel menu.
  2. Fare clic sul collegamento delle impostazioni sulla scheda sinistra
  3. Se non si è già generato un VS, verrà creato un collegamento per crearne uno.
  4. Una volta creato, è possibile aggiungere coppie di valori chiave per le proprietà richieste.
  5. VS includerà un file settings.settings nel progetto che conterrà le proprietà che hai aggiunto nel file delle impostazioni (dovresti vederle in Settings.Designer.cs assumendo che stai usando C#)
  6. Puoi quindi accedere a queste impostazioni in classi del vostro progetto facendo [ProjectNamespace].Properties.Settigns.Default.[PropertyName]