2009-11-19 13 views
0

J'essaye de construire une configuration faite sur commande et avec une certaine raison, je ne peux pas le faire fonctionner. J'apprécierai si quelqu'un peut voir où mon problème est.ConfigurationSection - La section personnalisée n'est pas définie - Pourquoi?

Voici le code:

public class PointServices : ConfigurationSection 
    { 
     public static PointServices Get() 
     { 
      var t = ConfigurationManager.GetSection("point.Services/xServices") as PointServices; 

      return t; 
     } 

     //<summary> 
     //Declares a collection element represented in the following configuration sub-section 
     //<singleInstances> <add .../> </singleInstances> 
     //</summary> 
     [ConfigurationProperty("xServices", IsDefaultCollection = true)] 
     [ConfigurationCollection(typeof(PointServices))] 
     public PointServicesCollection Services 
     { 
      get 
      { 
       //var v = base["xServices"]; 
       return (PointServicesCollection) base["xServices"]; 
      } 
     } 
    } 



    public class PointService : ConfigurationElement 
    { 
     [ConfigurationProperty("name",IsRequired = true)] 
     public string Name 
     { 
      get 
      { 
       return this["name"].ToString(); 
      } 
     } 

     [ConfigurationProperty("type", IsRequired = true)] 
     public string Type 
     { 
      get 
      { 
       return this["type"].ToString(); 
      } 
     } 


    } 

et voici la configuration:

 <sectionGroup name="point.Services"> 
      <section name="xServices" type="XYZ.Messaging.PointServiceConfiguration.PointServices, XYZ.Point.Messaging" /> 
     </sectionGroup> 
... 
    <point.Services> 
     <xServices> 
      <xService> 
      <add name="XYZService" type="XYZService" /> 
      </xService> 
     </xServices> 
     </point.Services> 

Quand je suis en cours d'exécution: PointServices.Get(), je reçois:

élément non reconnu 'xService'.

J'ai essayé d'ajouter Xservice à la définition de la section comme suit: <section name="xService" type="XYZPoint.Messaging.PointServiceConfiguration.PointService, Barcap.FIA.Point.Messaging" /> mais il ne semble pas aider.

Si quelqu'un a une idée, aidez-nous! Merci

Répondre

1

Et vous avez besoin d'un autre prescripteur pour Xservice

<sectionGroup name="point.Services">   
    <sectionGroup name="xServices">   
    <section name="xService" 
     type="XYZ.Messaging.PointServiceConfiguration.PointServices, XYZ.Point.Messaging" /> 
    </sectionGroup name="xServices">   
</sectionGroup> 
+0

super, cela aide à résoudre un problème, mais maintenant j'ai ce numéro: http://stackoverflow.com/questions/1768362/sections-must-only-appear-once-per-config-file-why –

0

xServices doit être un sectionGroup, pas une section. Et xService devrait être défini comme une section.

+0

Merci pour votre aide. savez-vous ce que je reçois ceci: http://stackoverflow.com/questions/1768362/sections-must-only-appear-once-per-config-file-why –