zoukankan      html  css  js  c++  java
  • 第13章 .NET应用程序配置

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Collections;
    using System.Configuration;
    using System.Xml;
    
    namespace CustomConfig
    {
        public class MailServerConfigHandler:IConfigurationSectionHandler
        {
            public object Create(object parent, object configContext, System.Xml.XmlNode section)
            {
                MailServerConfig config = new MailServerConfig();
                config.Provider = section.Attributes["provider"] == null ? "" : section.Attributes["provider"].Value;
                foreach (XmlNode child in section.ChildNodes)
                {
                    MailServer server = new MailServer();
                    server.Client = child.Attributes["client"] == null ? "" : child.Attributes["client"].Value;
                    foreach (XmlNode grandChild in child.ChildNodes)
                    {
                        server.ServerNode.Add(grandChild.Name, grandChild.InnerText);
                    }
                    config.Add(server);
                }
                return config;
            }
        }
    
        public class MailServer
        {
            private Hashtable serverNode;
            public MailServer()
            {
                serverNode = new Hashtable();
            }
    
            public Hashtable ServerNode
            {
                get { return serverNode; }
            }
    
            public string Client { get; set; }
    
            public string Address
            {
                get { return serverNode["address"] as string; }
            }
    
            public string UserName
            {
                get { return serverNode["username"] as string; }
            }
    
            public string Password
            {
                get { return serverNode["password"] as string; }
            }
        }
    
        public class MailServerConfig : List<MailServer>
        {
            public string Provider { get; set; }
        }
    }
    View Code
    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
      <configSections>
        <section name="mailServerGroup" type="CustomConfig.MailServerConfigHandler,CustomConfig"/>
      </configSections>
    
      <mailServerGroup provider="www.edong.com">
        <mailServer client="forum.tracefact.net">
          <address>addr1</address>
          <userName>user1</userName>
          <password>pwd1</password>
        </mailServer>
        
        <mailServer client="blog.tracefact.com">
          <address>addr2</address>
          <userName>user2</userName>
          <password>pwd2</password>
        </mailServer>
      </mailServerGroup>
    </configuration>
    View Code
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using CustomConfig;
    using System.Configuration;
    
    namespace ConsoleApplication1
    {
        class Program
        {
            static void Main(string[] args)
            {
                example();
            }
    
            private static void example()
            {
                MailServerConfig serverGroup = (MailServerConfig)ConfigurationManager.GetSection("mailServerGroup");
                Console.WriteLine("provider:	"+serverGroup.Provider);
                foreach (MailServer config in serverGroup)
                {
                    Console.WriteLine("-------------------------------");
                    Console.WriteLine("client:	"+config.Client);
                    Console.WriteLine("address:	"+config.Address);
                    Console.WriteLine("userName:	"+config.UserName);
                    Console.WriteLine("password:	"+config.Password);
                }
                Console.ReadKey();
            }
        }
    }
    View Code
  • 相关阅读:
    插入排序法
    二分查找
    排序算法
    牛客网 猜数游戏
    决策树及随机森林(笔记)
    knn的缺陷及改进
    区块链、比特币简易PYTHON实现版笔记
    B树,B+树,以及它们和数据库索引之间的关系
    Balanced Binary Tree
    Advantages & Disadvantages of Recursion
  • 原文地址:https://www.cnblogs.com/liuslayer/p/5944522.html
Copyright © 2011-2022 走看看