La construction d'une Section de Configuration JSON

Est-il un moyen d'avoir des sections de configuration écrit en JSON au lieu de XML?

Supposons que j'ai le texte suivant ConfigurationSection:

public class UsersConfig : ConfigurationSection {

      [ConfigurationProperty("users",
                             IsRequired = false)]
      public UserCollection Users {
           get { return this["users"] as UserCollection; }
      }
}

[ConfigurationCollection(typeof(UserElement),
     AddItemName = "user"]
public class UsersCollection : ConfigurationElementCollection {
      protected override ConfigurationElement CreateNewElement() {
            return new UserElement();
      }

      protected override object GetElementKey(ConfigurationElement element) {
            return ((UserElement)element).Name;
      }
}

public class UserElement : ConfigurationElement {

     [ConfigurationProperty("name",
                            IsRequired = true,
                            IsKey = true)]
     public string Name {
          get { return this["name"] as string; }
          set { this["name"] = value; }
     }
}

Je peux ensuite créer le fichier XML suivant la configuration de la section:

<users-config>
      <users>
            <user name="Matt458" />
            <user name="JohnLennon" />
      </users>
</users-config>

Ce que je veux atteindre est de mantain la même UsersConfig classe, mais au lieu de mappage XML, je voudrais correspondre à un JSON:

{
    "users": [
        {
            "name": "Matt458"
        },
        {
             "name": "JohnLennon"
        }
    ]
}
  • Son possible à l'aide de la SerializeSection et DeserializeSection les remplacements dans le ConfigurationSection classe. Vous pouvez utiliser une CDATA élément à l'intérieur d'Utilisateurs élément de tenir des données arbitraires, et ensuite le lire au cours de la coutume de sérialisation/désérialisation.
  • Avez-vous essayé le suivant bibliothèque? Il dispose d' Storage to .config files, plain XML or JSON files, strings or a database il pourrait donc la peine de prendre un coup d'oeil.
  • Entendez-vous web.config?
  • Personnellement, je pense que c'est en allant sur le mauvais chemin de la réalisation de votre objectif final. L'intention du web.fichier de configuration est une approche normalisée pour la définition de la configuration des informations traitées par ASP.NET, IIS et le .NET Framework. Si vous avez besoin de pousser les données stockées dans la .fichier de config ailleurs dans un format différent, alors vous devriez être la sérialisation des données en tant que de besoin, et de ne pas essayer de faire quelque chose d'incompatible avec dire l'Administration IIS console MMC ou d'autres applications.
  • Pourquoi est-ce nécessaire XML et .NET de construire dans la configuration des classes fait le travail parfaitement