2010-02-25 19 views
2

Alors c'est un nouveau pour moi.Comment définir une ConfigurationSection

J'essaie de définir une classe ConfigurationSection dans ma bibliothèque de classes qui provient de App.Config dans mon application WinForms. Je n'ai jamais fait cela auparavant, mais d'après les exemples suivants, c'est là que je dois aller.

app.config dans mon WinForms application

<?xml version="1.0" encoding="utf-8" ?> 
<configuration> 
    <configSections> 
    <section name="ReportEngineConfig" type="Optima.ReportEngine.ReportEngineConfig" allowDefinition="Everywhere" allowLocation="true"/> 
    </configSections> 

    <ReportEngineConfig> 
    <ReportObjectVariableRegEx value="test" ></ReportObjectVariableRegEx> 
    </ReportEngineConfig> 
</configuration> 

Et ma classe ConfigurationSection dans ma bibliothèque séparée de classe.

en utilisant System.Configuration;

namespace Optima.ReportEngine 
{ 
    public class ReportEngineConfig : ConfigurationSection 
    { 
     [ConfigurationProperty("ReportObjectVariableRegEx")] 
     public string ReportObjectVariableRegEx 
     { 
      get 
      { 
       return (string)this["value"]; 
      } 
     } 

    } 
} 

Ainsi, toute chance quiconque peut montrer où je suis allé mal

Merci!

Répondre

2

Votre balise de type doit faire référence au nom de l'ensemble, et pas seulement le nom du type:

type="Optima.ReportEngine.ReportEngineConfig, Optima.ReportEngineAssembly" 

Lorsque la section après la virgule est le nom de l'ensemble contenant ReportEngineConfig. Vous devrez également vous assurer que l'application qui utilise ce fichier app.config a référencé le même assembly contenant ReportEngineConfig.

Aussi, vous pouvez vous débarrasser des balises AllowDefinition et allowLocation ... vous avez mis les valeurs par défaut.

+0

J'ai mis la ligne à

avec ReportEngine étant le nom de la DLL mais cette [" valeur "] obtient toujours une référence nulle? –