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;
            }
        }
    }
    

      

  • 相关阅读:
    ADFS登录界面自定义
    C# 不添加WEB引用调用WSDL接口
    C# 对象转XML 支持匿名类
    NSdata 与 NSString,Byte数组,UIImage 的相互转换
    《.NETer提高效率——环境部署》
    (五) Docker 安装 Nginx
    (六) Docker 部署 Redis 高可用集群 (sentinel 哨兵模式)
    (七) Docker 部署 MySql8.0 一主一从 高可用集群
    (八) Docker 部署 mongodb
    (四) Docker 使用Let's Encrypt 部署 HTTPS
  • 原文地址:https://www.cnblogs.com/hualiu0/p/4941828.html
Copyright © 2011-2022 走看看