首页 > 代码库 > 第13章 .NET应用程序配置
第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; } }}
<?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>
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:\t"+serverGroup.Provider); foreach (MailServer config in serverGroup) { Console.WriteLine("-------------------------------"); Console.WriteLine("client:\t"+config.Client); Console.WriteLine("address:\t"+config.Address); Console.WriteLine("userName:\t"+config.UserName); Console.WriteLine("password:\t"+config.Password); } Console.ReadKey(); } }}
第13章 .NET应用程序配置
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。