Maison développement back-end Tutoriel XML/RSS Exemple de partage de code d'un programme de configuration dynamique XML personnalisé

Exemple de partage de code d'un programme de configuration dynamique XML personnalisé

Mar 22, 2017 pm 04:46 PM

Vue d'ensemble

1 Lors du développement de programmes, nous utilisons souvent les deux modules de base suivants

1> ;

2> Lors du développement basé sur un développement basé sur une table, une certaine logique de jugement est placée dans les données de la table

2 Parmi ces deux applications de base, nous avons les exigences suivantes :

1> Pour être géré de manière centralisée;

2> Pour être configurable, c'est-à-dire pour modifier les paramètres sans redémarrer le système;

Pour être facile à utiliser;

Fonctions principales du programme

1> Définir les paramètres de base du programme, tels que les paramètres de pagination, les paramètres de courrier électronique, etc.

----Ajouter automatiquement la configuration ; informations en XML à l'entité correspondante.

2> Lors du développement basé sur un développement basé sur une table, une certaine logique de jugement est placée dans les données de la table

----Charger automatiquement les données de dictionnaire en XML dans l'entité correspondante ; Cependant, cette méthode doit continuer à être optimisée. Désormais, elle ne prend en charge que le chargement du dictionnaire et doit prendre en charge des structures plus complexes.

Code principal

1 Définissez d'abord, référencez l'entité dans le code.

Exemple

1

2

3

4

5

6

7

8

public class AppSetting

{

    public string PageSize;

    public string WebUrl;

  

    public Dictionary<string, string> IsPartialPayment;

    public Dictionary<string, string> EntityCurrency;

}

Copier après la connexion
2 Définir le fichier XML correspondant. Parmi eux, les informations de configuration de base du programme sont configurées sous le nœud AppSettings

.

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

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

<settings>

  <DictSettings>

    <Dict name="AppSettings" >

      <add key="PageSize" value="2"></add>

      <add key="WebUrl" value="www.baidu.com"></add>

    </Dict>

    <Dict name="IsPartialPayment">

      <add key="TTPART" value="true"></add>

      <add key="TT50/50" value="true"></add>

    </Dict>

    <Dict name="EntityCurrency">

      <add key="China" value="CNY"></add>

      <add key="HQ" value="USD"></add>

      <add key="Default" value="USD"></add>

    </Dict>

  </DictSettings>

</settings>

Copier après la connexion
3 Enfin, un morceau de code de chargement XML est nécessaire pour charger les informations de configuration XML en 2 dans l'entité en 1.

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

public static class ConfigManager

    {

        public static AppSetting AppSetting;

        private static string xmlPath;

  

        public static Dictionary<string, Dictionary<string, string>> DictAppSettings = new Dictionary<string, Dictionary<string, string>>();

        static ConfigManager()

        {

            xmlPath = System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory.ToString(), "AppConfig.xml");

            LoadSettings(xmlPath);

        }

  

        private static void LoadSettings(string path)

        {

            DictAppSettings.Clear();

            //加载XML中所有的key,value,并转换成Dictionary对象

            XmlNode dictRootNode = FileHelper.GetXMLNode(path, "/settings/DictSettings");

            foreach (XmlNode dictType in dictRootNode.ChildNodes)

            {

                Dictionary<string, string> dict = new Dictionary<string, string>();

                foreach (XmlNode dictItem in dictType.ChildNodes)

                {

                    dict.Add(dictItem.Attributes["key"].Value.Trim(), dictItem.Attributes["value"].Value.Trim());

                }

                DictAppSettings.Add(dictType.Attributes["name"].Value.Trim(), dict);

            }

  

            //将Dictionary 对象转换成实体的字段和对应dctionary上

            var serializer = new JavaScriptSerializer();

            //将AppSettings转成json

            string jAppSetting = serializer.Serialize(DictAppSettings["AppSettings"]);

            DictAppSettings.Remove("AppSettings");

            //将除AppSettings中的信息转成json

            string jDict = serializer.Serialize(DictAppSettings);

            //将AppSettings和其它的Dictionary 加载到对应的实体中去。

            string json = string.Format("{0},{1}", jAppSetting.Remove(jAppSetting.Length - 1), jDict.Remove(0, 1));

            AppSetting = serializer.Deserialize<AppSetting>(json);

  

            //当修改文件时,重新加载XML

            FileHelper.CacheDependencyFile(path, CacheRemovedCallback);

        }

  

        private static void CacheRemovedCallback(string key, object value, CacheItemRemovedReason reason)

        {

            //此方法来自Fish.Li

            string xmlFilePath = (string)value;

  

            // 由于事件发生时,文件可能还没有完全关闭,所以只好让程序稍等。

            System.Threading.Thread.Sleep(3000);

  

            LoadSettings(xmlFilePath);

        }

    }

  

    public static class FileHelper

    {

        public static XmlNode GetXMLNode(string path, string xPath)

        {

            XmlDocument xmlDoc = new XmlDocument();

            xmlDoc.Load(path);

            return xmlDoc.SelectSingleNode(xPath);

        }

  

        public static void CacheDependencyFile(string path, CacheItemRemovedCallback removedCallback)

        {

            CacheDependency dep = new CacheDependency(path);

            HttpRuntime.Cache.Insert(Guid.NewGuid().ToString(), path, dep,

                Cache.NoAbsoluteExpiration, Cache.NoSlidingExpiration, CacheItemPriority.NotRemovable, removedCallback);

        }

    }

Copier après la connexion
Effet final

1 Lorsque le programme est exécuté pour la première fois, les informations de configuration correspondantes sont affichées

Exemple de partage de code dun programme de configuration dynamique XML personnalisé

2 Lorsque la pièce modifiée Lors de la modification des paramètres, les dernières informations peuvent être obtenues sans redémarrer. A noter qu'après avoir modifié les paramètres pendant 3 secondes, actualisez la page

Exemple de partage de code dun programme de configuration dynamique XML personnalisé

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment configurer rapidement un avatar personnalisé dans Netflix Comment configurer rapidement un avatar personnalisé dans Netflix Feb 19, 2024 pm 06:33 PM

Un avatar sur Netflix est une représentation visuelle de votre identité de streaming. Les utilisateurs peuvent aller au-delà de l'avatar par défaut pour exprimer leur personnalité. Continuez à lire cet article pour savoir comment définir une photo de profil personnalisée dans l'application Netflix. Comment définir rapidement un avatar personnalisé dans Netflix Dans Netflix, il n'y a pas de fonctionnalité intégrée pour définir une photo de profil. Cependant, vous pouvez le faire en installant l'extension Netflix sur votre navigateur. Tout d’abord, installez une photo de profil personnalisée pour l’extension Netflix sur votre navigateur. Vous pouvez l'acheter dans la boutique Chrome. Après avoir installé l'extension, ouvrez Netflix sur votre navigateur et connectez-vous à votre compte. Accédez à votre profil dans le coin supérieur droit et cliquez sur

Puis-je ouvrir un fichier XML à l'aide de PowerPoint ? Puis-je ouvrir un fichier XML à l'aide de PowerPoint ? Feb 19, 2024 pm 09:06 PM

Les fichiers XML peuvent-ils être ouverts avec PPT ? XML, Extensible Markup Language (Extensible Markup Language), est un langage de balisage universel largement utilisé dans l'échange et le stockage de données. Comparé au HTML, XML est plus flexible et peut définir ses propres balises et structures de données, rendant le stockage et l'échange de données plus pratiques et unifiés. PPT, ou PowerPoint, est un logiciel développé par Microsoft pour créer des présentations. Il fournit un moyen complet de

Convertir des données XML au format CSV en Python Convertir des données XML au format CSV en Python Aug 11, 2023 pm 07:41 PM

Convertir des données XML en Python au format CSV XML (ExtensibleMarkupLanguage) est un langage de balisage extensible couramment utilisé pour le stockage et la transmission de données. CSV (CommaSeparatedValues) est un format de fichier texte délimité par des virgules couramment utilisé pour l'importation et l'exportation de données. Lors du traitement des données, il est parfois nécessaire de convertir les données XML au format CSV pour faciliter l'analyse et le traitement. Python est un puissant

Comment créer et personnaliser des diagrammes de Venn en Python ? Comment créer et personnaliser des diagrammes de Venn en Python ? Sep 14, 2023 pm 02:37 PM

Un diagramme de Venn est un diagramme utilisé pour représenter les relations entre des ensembles. Pour créer un diagramme de Venn, nous utiliserons matplotlib. Matplotlib est une bibliothèque de visualisation de données couramment utilisée en Python pour créer des tableaux et des graphiques interactifs. Il est également utilisé pour créer des images et des graphiques interactifs. Matplotlib fournit de nombreuses fonctions pour personnaliser les tableaux et graphiques. Dans ce didacticiel, nous illustrerons trois exemples pour personnaliser les diagrammes de Venn. La traduction chinoise de l'exemple est : Exemple Il s'agit d'un exemple simple de création de l'intersection de deux diagrammes de Venn. Nous avons d'abord importé les bibliothèques nécessaires et importé les Venns. Ensuite, nous créons l'ensemble de données en tant qu'ensemble Python, après quoi nous utilisons la fonction "venn2()" pour créer

Comment personnaliser les paramètres des touches de raccourci dans Eclipse Comment personnaliser les paramètres des touches de raccourci dans Eclipse Jan 28, 2024 am 10:01 AM

Comment personnaliser les paramètres des touches de raccourci dans Eclipse ? En tant que développeur, la maîtrise des touches de raccourci est l'une des clés pour améliorer l'efficacité du codage dans Eclipse. En tant qu'environnement de développement intégré puissant, Eclipse fournit non seulement de nombreuses touches de raccourci par défaut, mais permet également aux utilisateurs de les personnaliser selon leurs propres préférences. Cet article explique comment personnaliser les paramètres des touches de raccourci dans Eclipse et donne des exemples de code spécifiques. Ouvrez Eclipse Tout d'abord, ouvrez Eclipse et entrez

Le processus de fonctionnement de la disposition d'écran personnalisée edius Le processus de fonctionnement de la disposition d'écran personnalisée edius Mar 27, 2024 pm 06:50 PM

1. L'image ci-dessous est la disposition d'écran par défaut d'edius. La disposition par défaut de la fenêtre EDIUS est une disposition horizontale. Par conséquent, dans un environnement à moniteur unique, de nombreuses fenêtres se chevauchent et la fenêtre d'aperçu est en mode fenêtre unique. 2. Vous pouvez activer le [Mode double fenêtre] via la barre de menu [Affichage] pour que la fenêtre d'aperçu affiche simultanément la fenêtre de lecture et la fenêtre d'enregistrement. 3. Vous pouvez restaurer la disposition d'écran par défaut via [Barre de menu Affichage> Disposition des fenêtres> Général]. De plus, vous pouvez également personnaliser la disposition qui vous convient et l'enregistrer comme disposition d'écran couramment utilisée : faites glisser la fenêtre vers une disposition qui vous convient, puis cliquez sur [Affichage > Disposition de la fenêtre > Enregistrer la disposition actuelle > Nouveau], et dans le pop-up [Enregistrer la mise en page actuelle] Mise en page] entrez le nom de la mise en page dans la petite fenêtre et cliquez sur OK

Comment gérer les formats de données XML et JSON dans le développement C# Comment gérer les formats de données XML et JSON dans le développement C# Oct 09, 2023 pm 06:15 PM

La gestion des formats de données XML et JSON dans le développement C# nécessite des exemples de code spécifiques. Dans le développement de logiciels modernes, XML et JSON sont deux formats de données largement utilisés. XML (Extensible Markup Language) est un langage de balisage permettant de stocker et de transmettre des données, tandis que JSON (JavaScript Object Notation) est un format d'échange de données léger. Dans le développement C#, nous devons souvent traiter et exploiter des données XML et JSON. Cet article se concentrera sur la façon d'utiliser C# pour traiter ces deux formats de données et les attacher.

Comment personnaliser l'axe X et l'axe Y dans Excel ? (Comment personnaliser l'échelle des axes Excel) Comment personnaliser l'axe X et l'axe Y dans Excel ? (Comment personnaliser l'échelle des axes Excel) Mar 14, 2024 pm 02:10 PM

Dans un tableau Excel, vous devrez parfois insérer des axes de coordonnées pour voir l'évolution des données de manière plus intuitive. Certains amis ne savent toujours pas comment insérer les axes de coordonnées dans le tableau. Ensuite, je partagerai avec vous comment personnaliser l'échelle des axes de coordonnées dans Excel. Méthode d'insertion de l'axe des coordonnées : 1. Dans l'interface Excel, sélectionnez les données. 2. Dans l'interface d'insertion, cliquez pour insérer un histogramme ou un histogramme. 3. Dans l'interface développée, sélectionnez le type de graphique. 4. Dans l'interface contextuelle du tableau, cliquez sur Sélectionner les données. 5. Dans l'interface étendue, vous pouvez la personnaliser.

See all articles