标签:
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;
}
}
}
configurationmanager.getsection usage example.
标签:
原文地址:http://www.cnblogs.com/hualiu0/p/4941828.html