问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

.NET 配置文件简单使用

发布网友 发布时间:2022-12-26 22:54

我来回答

1个回答

热心网友 时间:2023-10-17 11:52

  当我们开发系统的时候要把一部分设置提取到外部的时候 那么就要用到 NET的配置文件了 比如我的框架中使用哪个IOC容器需要可以灵活的选择 那我就需要把IOC容器的设置提取到配置文件中去配置 实现有几种方法

   使用appSettings

  这个是最简单的可以设置和读取的用户设置

  程序中可以用key去读取

  string objContainer = ConfigurationManager AppSettings[ objectContainer ];

  简单实用但是不够优雅

   实现自己的配置节点

  首先在configSections节点配置自己的配置解析类

  那么如何来解析这段配置呢?有两个办法

  方法

  实现IConfigurationSectionHandler接口来自己解析配置文件的xml文件

  public class ObjectContainerElement

  {

  public string Provider {get;set;}

  public string IocMole {get; set;}

  }

  public class AgileFRConfigurationHandler: IConfigurationSectionHandler

  {

  public object Create(object parent object configContext XmlNode section)

  {

  var node =section ChildNodes[ ];

  if (node Name != objectContainer )

  throw new ConfigurationErrorsException( 不可识别的配置项 node);

  var config = new ObjectContainerElement();

  foreach (XmlAttribute attr in node Attributes)

  {

  switch (attr Name)

  {

  case provider :

  config Provider = attr Value;

  break;

  case iocMole :

  config IocMole = attr Value;

  break;

  default:

  throw new ConfigurationErrorsException( 不可识别的配置属性 attr);

  }

  }

  }

  return config;

  }

  //使用

  var config = ConfigurationManager GetSection( agileFRConfiguration ) as ObjectContainerElement;

  这个方法看上去就略 *** 了 不过就是太麻烦了

  方法

  继承ConfigurationSection类 配合ConfigurationProperty特性来实现

  public class ObjectContainerElement : ConfigurationElement

  {

  [ConfigurationProperty( provider IsRequired = true)]

  public string Provider

  {

  get

  {

  return (string)this[ provider ];

  }

  set

  {

  this[ provider ] = (object)value;

  }

  }

  [ConfigurationProperty( iocMole IsRequired = false)]

  public string IocMole

  {

  get

  {

  return (string)this[ iocMole ];

  }

  set

  {

  this[ iocMole ] = (object)value;

  }

  }

  }

  ///

  /// 配置处理类

  ///

  public class AgileFRConfigurationHandler : ConfigurationSection

  {

  [ConfigurationProperty( objectContainer IsRequired = true)]

  public ObjectContainerElement ObjectContainer

  {

  get

  {

  return (ObjectContainerElement)this[ objectContainer ];

  }

  set

  {

  this[ objectContainer ] = (object)value;

  }

  }

  }

  //使用

  var configurationHandler = (AgileFRConfigurationHandler)ConfigurationManager GetSection( agileFRConfiguration );

  var objectContainer=configurationHandler ObjectContainer;

  这个方法简单优雅 我喜欢

   Settings settings

lishixin/Article/program/net/201311/12163
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
ef英语哪个好 EF英孚英语培训怎么样? 英孚英语好不好 EF英孚教育到底好不好 大佬们,麦芒7和荣耀10那个值得入手?2500以下的机子还有啥好推荐的么... 介绍几款2500元以前的手机 像素一定要高 其他的不做要求 近期想入手一部安卓手机,价格2200到2500左右…买HTC desire Z还是 三星... 笔记本忘记开机密码怎么办急死了 笔记本电脑屏幕开机锁忘记密码 怎么办?急死了 华硕笔记本电脑开机密码忘记了怎样找回?系统是Windows 7旗舰版... 关心他人演讲稿 飞利浦是哪个国家的产品品牌 飞利浦电视是热门的品牌么? 数字电子计算机详细资料大全 第一台电子计算机介绍 第一台电子计算机功能 世界上第一台现代电子计算机是什么 世界上第一台现代电子计算机的介绍 电子计算机的知识 信用卡无限卡额度是多少 php语言开发要学习的课程有哪些 高速入口单向管制什么意思 PHP工程师主要学哪些东西 写景 状物作文ppt课件 看图写作文ppt小学 诗歌鉴赏景物形象ppt 写作文打开五感指导ppt 联想和想象作文课件 开美容院需要哪些工具 皇太极小说,皇太极和海兰珠的小说,越多越好 东鹏特饮喝了会有效果吗 一瓶500毫升的东鹏特饮顶几碗米饭的热量 讲述如何使用.NET的配置文件 .net Framework提供配置文件操作 如何在Microsoft.NET中自定义配置文件 ASP.NET 配置文件层次结构和继承 ASP.NET入门教程 11.5 启用用户配置文件 14年影池760显卡相当于现在的什么显卡 电脑怎么显示历史纪录 wps怎么用不了了! 被覆盖怎样找回? 新的把旧的覆盖了咋办 尹瑞彬多高 尹瑞彬和谁在一起了? 一个手机注册了两个以前那个被覆盖了怎么找回来? 尹瑞彬金志雄什么关系 丰德别墅304号隐情一共多少集 新把老号覆盖了怎么办 尹瑞彬金志雄多高 风德住宅304号的事因几集 我原来的老被新注册的覆盖了,怎么找回,求大神,里面的零钱也没了? 丰德别墅304室成浩哲谁演的