2011-08-30 4 views
0

J'ai une bibliothèque de classes partagée qui est utilisée par une application Web asp.net et une application console..NET Console Application configSections

Dans le web.config de mon application Web, j'ai un sectionGroup dans les configSections déclaré, puis les paramètres correspondants.

<configSections> 
    <sectionGroup name="StockLocator"> 
      <section name="AppSettings" type="StockLocator.ConfigSettings.AppConfig, StockLocator"/> 
    </sectionGroup> 
</configSections> 

<StockLocator> 
    <AppSettings> 
     <Settings...... /> 
    </AppSettings> 
</StockLocator> 

Tout fonctionne lorsque je lis ces paramètres dans l'application Web. Toutefois, lorsque j'ajoute ceci à App.config de mon application console, il n'est pas capable de lire ces paramètres. Fondamentalement, chaque fois que j'essaie de lire quelque chose à partir du fichier App.config je reçois juste une erreur "Object reference not set to an instance of an object."

Pas très utile.

Il semble que cette section ne soit simplement pas lue dans le fichier app.config, ce qui m'amène à penser que vous ne pouvez pas ajouter le configSections au fichier app.config? Ou y a-t-il un autre moyen de déboguer ceci pour obtenir un meilleur message d'erreur?

Je lis des configSections utilisant le code

<Serializable()> _ 
Public Class AppConfig 
    Inherits ConfigurationSection 

    ''' <summary> 
    ''' Initialises and gets AppConfig SiteSettings 
    ''' </summary> 
    ''' <returns></returns> 
    ''' <remarks></remarks> 
    Public Shared Function getConfig() As AppConfig 
     Return CType(ConfigurationManager.GetSection("StockLocator/AppSettings"), AppConfig) 
    End Function 

    <ConfigurationProperty("Settings")> _ 
    Public Property Settings() As SettingsElement 
     Get 
      Return CType(Me("Settings"), SettingsElement) 
     End Get 
     Set(ByVal value As SettingsElement) 
      Me("Settings") = value 
     End Set 
    End Property 

    Public Class SettingsElement 
     Inherits ConfigurationElement 

     <ConfigurationProperty("SqlConnName")> _ 
     Public Property SqlConnName() As String 
      Get 
       Return CType(Me("SqlConnName"), String) 
      End Get 
      Set(ByVal value As String) 
       Me("SqlConnName") = value 
      End Set 
     End Property 

    End Class 

End Class 

Stack Trace:

à StockLocator.Model.StockLocatorService.MatchStock (magasin de StockLocator_Store) dans C: \ projects \ StockLocator \ StockLocator \ Model \ StockLocator.vb: ligne 421

+0

Pouvez-vous publier l'exception complète, inclure la trace de la pile s'il vous plaît? –

+0

Pouvez-vous également publier le code que vous utilisez pour essayer de lire depuis app.config? – PaulStock

+0

mis à jour. Stack Trace est inutile: P –

Répondre

2

Si vous avez d'autres appSettings dans votre App.config, leur ordre relatif est important. La section configSections devrait précéder les appSettings. Plus sur this msdn thread

Questions connexes