zoukankan      html  css  js  c++  java
  • 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;
            }
        }
    }
    

      

  • 相关阅读:
    KVO的用法、底层实现原理
    Runtime应用(三)实现NSCoding的自动归档和自动解档
    Runtime应用(二)使用对象关联为分类增加属性(每个对象的属性互不干扰)
    Runtime 应用(一)拦截系统自带的方法交换实现
    iOS实现传递不定长的多个参数
    Runtime 中的 _cmd、 IMP
    UIWebView、WKWebView使用详解及性能分析
    iOS
    基本图形生成算法
    关于动画中帧的解释
  • 原文地址:https://www.cnblogs.com/hualiu0/p/4941828.html
Copyright © 2011-2022 走看看