posts - 930,  comments - 588,  views - 402万
< 2025年2月 >
26 27 28 29 30 31 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 1
2 3 4 5 6 7 8
       在程序中经常要使用自定义配置节来存储一些信息,下面是一个只读简单实现:
复制代码
using System;
using System.Collections.Generic;
using System.Text;
using System.Configuration;

namespace SmsWinForm
{

    
public class SectionHandler : System.Configuration.IConfigurationSectionHandler
    {
        
public object Create(object parent, object configContext, System.Xml.XmlNode section)
        {
            
return new Config(section);
        }
    }

    
class Config
    {
        
private System.Xml.XmlNode m_section;

        
public Config(System.Xml.XmlNode node)
        {
            m_section 
= node;
        }

        
static private Config configSection
        {
            
get
            {
                Config config 
= (Config)System.Configuration.ConfigurationManager.GetSection("SmsWinForm");
                
if (config == null)
                {
                    
throw new ApplicationException("Failed to get configuration from App.config.");
                }
                
return config;
            }
        }

        
public string this[string key]
        {
            
get
            {
                System.Xml.XmlNode node 
= m_section.SelectSingleNode(key);
                
if (node != null)
                    
return node.InnerText;
                
else
                    
return null;
            }
        }

        
static public string BoardID
        {
            
get
            {
                
return configSection["boardid"];
            }
        }

        
static public string CategoryID
        {
            
get
            {
                
return configSection["categoryid"];
            }
        }

    }
}
复制代码

App.config中
复制代码
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  
<configSections>
    
<section name="SmsWinForm" type="SmsWinForm.SectionHandler,ConsoleTest1"/>
  
</configSections>
  
<SmsWinForm>
    
<categoryid>CMPP</categoryid>
    
<boardid>32</boardid>
  
</SmsWinForm>
</configuration>
复制代码

调用


Tip:如果只是用于只读情况下,那这个方法足够了,并且大部分情况我们很少更新配置节。

http://wintersun.cnblogs.com

posted on   PetterLiu  阅读(765)  评论(1编辑  收藏  举报
编辑推荐:
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
· C++代码改造为UTF-8编码问题的总结
阅读排行:
· 实操Deepseek接入个人知识库
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· 【.NET】调用本地 Deepseek 模型
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
· 上周热点回顾(2.17-2.23)
点击右上角即可分享
微信分享提示