configurationmanager.getsection usage example.

1.app.config(note that attribute case sensitive!)

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <!--configsections must be placed above most! or there may be a "Configuration System Failed to Initialize" error!-->
  <configSections>
    <!--section type equals format- "type,assemblyname"-->
    <section name="CustomConfig" type="SrvListQueryConsole.CustomConfig, SrvListQueryConsole"/>
  </configSections>
  <startup>
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2" />
  </startup>
  <!--config "Value" case sensitive-->
  <CustomConfig>
    <Name Value="asdf"/>
  </CustomConfig>
</configuration>

  2.class (should impliment interface IConfigurationSectionHandler)

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Configuration;
using System.Xml;

namespace SrvListQueryConsole
{
    class Program
    {


        static void Main(string[] args)
        {
            var m = ConfigurationManager.GetSection("CustomConfig") as CustomConfig;
            Console.WriteLine(m.Name);

            if (args.Length != 2) return;
            //System.Windows.Forms.Form fm = new ServerListQueryFormDll.SrvListQueryFrm(args[0],args[1]);
            //fm.ShowDialog();
            Console.Read();
        }
    }

//mapping!
    public class CustomConfig : IConfigurationSectionHandler
    {
        public string Name { get; private set; }
        public object Create(object parent, object configContext, XmlNode section)
        {
            CustomConfig config = new CustomConfig();
            var name = section.SelectSingleNode("Name");
            if (name != null && name.Attributes != null)
            {
                var attribute = name.Attributes["Value"];
                if (attribute != null)
                    config.Name = attribute.Value;
            }
            return config;
        }
    }
}

  

posted @ 2015-11-06 10:19  calochCN  阅读(269)  评论(0编辑  收藏  举报