导航

读取app.config中的configsection

Posted on 2014-12-26 17:51  一滴血  阅读(762)  评论(0)    收藏  举报

1.在app.config中添加自定义的section

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <configSections>
    <section name="Zsq" type="ConsoleApplication3.Zsq,ConsoleApplication3" allowLocation="true" allowDefinition="Everywhere"/>
  </configSections>
  <Zsq>
    <Name>zsq</Name>
    <Age>34</Age>
  </Zsq>
</configuration>

1》name的名称要和下面定义的一样  如“Zsq”

2》 type:逗号前面是包括命名空间的一个类后面是生成的exe或dll的名称

其中类实现了System.Configuration.IConfigurationSectionHandler接口中的create方法,create方法的实现如下

   public object Create(object parent, object configContext, XmlNode section)
        {
            Zsq zsq = new Zsq();
            //Console.WriteLine(section.ToString());
            //zsq.Name = section.Attributes.ToString();
            foreach (XmlNode node in section.ChildNodes)
            {
                switch (node.LocalName)
                {
                    case "Name":
                        zsq.Name = section.SelectSingleNode("Name").InnerText;
                        break;
                    case "Age":
                        zsq.Age = int.Parse( section.SelectSingleNode("Age").InnerText);
                        break;
                }
            }

            return zsq;
        }

 

 其中的

参数:XmlNode section中读取到的zsq节点,如:
 <Zsq>
    <Name>zsq</Name>
    <Age>34</Age>
  </Zsq>


3》在VS中生成XSD文件

4》利用VS自带的XSD工具生成对应的C#类:app.cs

  例如:

E:\Program Files\Microsoft Visual Studio 12.0\VC>xsd E:\test\ConsoleApplication8
\ConsoleApplication3\App.xsd /c /f /order /o:E:\test\ConsoleApplication8\Console
Application3\ /namespace:ConsoleApplication3

注意:把生成的类中的成员变量改成属性这样才能利用C#自己的configurationmanager类去读取

 

最后用

object obj = ConfigurationManager.GetSection("Zsq");

Zsq zsq = obj as Zsq;