none
Section de configuration personnalisée contenant une collection. RRS feed

  • Question

  • Bonjour,

     

    Je cherche présentement à créer une section de configuration personnalisée contenant une collection (List<>) d'éléments complexes.

     

    J'ai créer une classe de configuration personnalisée, dérivée de ConfigurationSection. J'ai créer une classe dérivée de ConfigurationElement qui définit la structure de chacune des entrées dans la liste.


    Maintenant, j'aimerais, à l'aide des attributs, décorer ces deux classes pour que la sérialisation de la configuration s'effectue automatiquement. J'ai essayer plusieurs variations à mon code mais rien se semble fonctionner.

     

    J'ai présentement ceci:

    Extrait de code

    public sealed class LibrarySettingsSection : ConfigurationSection

    {

    [ConfigurationProperty("Libraries")]

    [ConfigurationCollection(typeof(List<LibraryConfigurationElement>)]

    public List<LibraryConfigurationElement> Libraries

    {

    get { return (List<LibraryConfigurationElement>)base["Libraries"]; }

    }

    }

     

    public sealed class LibraryConfigurationElement : ConfigurationElement

    {

    public LibraryConfigurationElement(string name, Type providerType, string value)

    {

    this.Name = name;

    this.ProviderType = providerType;

    this.Value = value;

    }

     

    [ConfigurationProperty("name", IsRequired=true, IsKey=true)]

    public string Name

    {

    get { return (string)this["name"]; }

    set { this["name"] = value; }

    }

     

    [ConfigurationProperty("providerName", IsRequired = true)]

    public Type ProviderType

    {

    get { return (Type)this["providerName"]; }

    set { this["providerName"] = value; }

    }

     

    [ConfigurationProperty("value", IsRequired = true)]

    public string Value

    {

    get { return (string)this["value"]; }

    set { this["value"] = value; }

    }

    }

     

     

    J'aimerais utiliser un fichier de configuration semblabe à ceci:

    Extrait de code

    <?xml version="1.0" encoding="utf-8" ?>

    <configuration>

    <configSections>

    <section name="Libraries" type="MediaManager.LibrarySettingsSection, MediaManager" />

    </configSections>

     

    <Libraries>

    <add name="Publicitad - Jonathan"

    providerName="Publicitad.StandardMediaProvider"

    value="C:\Documents and Settings\jbourdon.PUBLICITAD\Bureau\Renaud-Bray\Libraries\Publicitad - Jonathan.xml" />

    </Libraries>

    </configuration>

     

     

    Est-il possible d'utiliser les collections génériques dans des sections de configuration personnalisée?

    Suis-je obliger de construire mes section de configuration comme vue sur developpez.com?

    jeudi 10 janvier 2008 15:50

Réponses

  • Bonjour,

    Si vous voulez avoir des collections dans votre fichier de configuration, vous devez effectivement créer une classe héritant de ConfigurationElementCollection comme indiqué sur developpez.com.

     

    Guillaume

    jeudi 10 janvier 2008 16:29