.net config文件 配置类的集合
1,appconfig文件
<configSections>
<section name="ToolConfig" type="DMTools.ToolConfigSection,DMTools"/>
</configSections>
<ToolConfig >
<DmTools>
<AddTool ImagePath="pic\MapGen.png" Name="代码生成By设计文档" Link="http://dmsite.chinacloudsites.cn/root/tools/CodeGenBySql/CodeGenBySql.application" />
<AddTool ImagePath="pic\CodeGenBySql.png" Name="代码生成BySQl" Link="http://dmsite.chinacloudsites.cn/root/tools/CodeGenBySql/CodeGenBySql.application" />
<AddTool ImagePath="pic\SyncDataBase.png" Name="数据结构迁移工具" Link="http://dmsite.chinacloudsites.cn/root/Tools/SysDataBase/SyncDataBase.application" />
<AddTool ImagePath="pic\MegreFile.png" Name="SQL自动合并执行工具" Link="http://dmsite.chinacloudsites.cn/root/Tools/MegreFile/MegreFile.application" />
</DmTools>
</ToolConfig>
2,配置类
namespace DMTools
{ public class ToolConfigSection : ConfigurationSection
{
[ConfigurationProperty("DmTools")] [ConfigurationCollection(typeof(DmToolConfigurationElementCollection), AddItemName = "AddTool", ClearItemsName = "ClearTool", RemoveItemName = "RemoveTool")]
public DmToolConfigurationElementCollection DmToolElements
{
get { return (DmToolConfigurationElementCollection)this["DmTools"]; }
set { this["DmTools"] = value; }
}
} public class DmToolConfigurationElementCollection : ConfigurationElementCollection
{
// 基本上,所有的方法都只要简单地调用基类的实现就可以了。 public DmToolConfigurationElementCollection() : base(StringComparer.OrdinalIgnoreCase) // 忽略大小写
{
} // 其实关键就是这个索引器。但它也是调用基类的实现,只是做下类型转就行了。
new public DmToolConfigurationElement this[string name]
{
get
{
return (DmToolConfigurationElement)base.BaseGet(name);
}
} // 下面二个方法中抽象类中必须要实现的。
protected override ConfigurationElement CreateNewElement()
{
return new DmToolConfigurationElement();
} protected override object GetElementKey(ConfigurationElement element)
{
return ((DmToolConfigurationElement)element).Name;
} // 说明:如果不需要在代码中修改集合,可以不实现Add, Clear, Remove
public void Add(DmToolConfigurationElement setting)
{
this.BaseAdd(setting);
}
public void Clear()
{
base.BaseClear();
}
public void Remove(string name)
{
base.BaseRemove(name);
}
} public class DmToolConfigurationElement : ConfigurationElement // 集合中的每个元素
{
[ConfigurationProperty("ImagePath", IsRequired = true)]
public string ImagePath
{
get { return this["ImagePath"].ToString(); }
set { this["ImagePath"] = value; }
} [ConfigurationProperty("Name", IsRequired = true)]
public string Name
{
get { return this["Name"].ToString(); }
set { this["Name"] = value; }
}
[ConfigurationProperty("Link", IsRequired = true)]
public string Link
{
get { return this["Link"].ToString(); }
set { this["Link"] = value; }
}
}
}
3,代码使用
ToolConfigSection toolSection= (ToolConfigSection)ConfigurationManager.GetSection("ToolConfig");
lstTile = (from toolElement in toolSection.DmToolElements.Cast<DmToolConfigurationElement>()
select new Tile { Name = toolElement.Name, Link = toolElement.Link, ImagePath = toolElement.ImagePath }
).ToList();
.net config文件 配置类的集合的更多相关文章
- c#Winform程序调用app.config文件配置数据库连接字符串 SQL Server文章目录 浅谈SQL Server中统计对于查询的影响 有关索引的DMV SQL Server中的执行引擎入门 【译】表变量和临时表的比较 对于表列数据类型选择的一点思考 SQL Server复制入门(一)----复制简介 操作系统中的进程与线程
c#Winform程序调用app.config文件配置数据库连接字符串 你新建winform项目的时候,会有一个app.config的配置文件,写在里面的<connectionStrings n ...
- 读取Config文件工具类 PropertiesConfig.java
package com.util; import java.io.BufferedInputStream; import java.io.FileInputStream; import java.io ...
- SSH自动登录config文件配置
title: SSH自动登录config文件配置 comments: false date: 2019-08-19 19:29:13 description: 更方便的 ssh 操作??? categ ...
- 通过config文件配置动态导入模块
需求: 固定的服务中要调用不同的算法,当前服务中实现的动态导入是通过在config配置中加上参数:proto="AiProto(1,4)",在服务中from pathname im ...
- C# app.config文件配置和修改
很多时候我们需要对系统的.config文件进度读写操作,例如:系统初始化的参数的更改.系统参数的改变都需要更新到配置文件. 首先我们有必要了解一下app.config.exe.config和vshos ...
- 跨域Ajax请求 web.config文件配置
在web.config文件的<system.webServer>节点下面添加如下配置代码:<!--允许跨域ajax访问--> <httpProtocol> < ...
- Web.Config文件配置之限制上传文件大小和时间
在邮件发送系统或者其他一些传送文件的网站中,用户传送文件的大小是有限制的,因为这样不但可以节省服务器的空间,还可以提高传送文件的速度.下面介绍如何在Web.Config文件中配置限制上传文件大小与时间 ...
- Winform数据库连接app.config文件配置
1.添加配置文件 新建一个winform应用程序,类似webfrom下有个web.config,winform下也有个App.config;不过 App.config不是自动生成的需要手动添加,鼠标右 ...
- Winform 数据库连接app.config文件配置 数据库连接字符串
1.添加配置文件 新建一个winform应用程序,类似webfrom下有个web.config,winform下也有个App.config;不过 App.config不是自动生成的需要手动添加,鼠标右 ...
随机推荐
- Lowest Common Ancestor of a Binary Tree
Given a binary tree, find the lowest common ancestor (LCA) of two given nodes in the tree. According ...
- Linux 进程详解
Linux内核的七大区间 .进程管理(进程创建,进程的三种状态,进程间的调度,调度算法...) .内存管理(段式管理(Linux所有段都从0开始),页式管理--地址偏移量) .系统调用(C语言库函数的 ...
- perl 下使用非root用户安装模块
perl下安装模块可以使用cpan命令,但是通常我们不具有root用户权限,所以只能以sudo方式安装模块. 例如需要安装Net::SCP::Expect模块, 执行cpan Net::SCP::Ex ...
- jboss:跟踪所有sql语句及sql参数
默认情况下,hibernate/JPA 在server.log中记录的SQL语句,参数都是用?代替的,这样不太方便. 网上留传的p6spy在最新的jboss上(EAP 6.0+版本)貌似已经不起作用了 ...
- HDU2255-奔小康赚大钱-二分图最大权值匹配-KM算法
二分图最大权值匹配问题.用KM算法. 最小权值的时候把权值设置成相反数 /*-------------------------------------------------------------- ...
- unix环境高级编程基础知识之第四章
1.从当前用户转到root用户:直接输入su命令,然后输入root密码,如果之前没有设置root命令密码会登陆不成功,这里需要命令sudo passwd命令设置密码,然后按照上面输入就成:从root命 ...
- 用TypeScript开发Vue——如何通过vue实例化对象访问实际ViewModel对象
用TypeScript开发Vue--如何通过vue实例化对象访问实际ViewModel对象 背景 我个人很喜欢TypeScript也很喜欢Vue,但在两者共同使用的时候遇到一个问题. Vue的实例化对 ...
- JavaScript学习笔记-商品管理新增/删除/修改功能
<!DOCTYPE html> <html lang="en" xmlns="http://www.w3.org/1999/xhtml"> ...
- 链接错误-库冲突(libcmt.lib和libcmtd.lib)
在同一个项目中,所有的源文件必须链接相同的C运行时库.如果某一文件用了Multithreaded DLL版本,而其他文件用了Single-Threaded或者Multithreaded版本的库,也就是 ...
- Linux 配置只安装 64 位软件包
Centos.RHEL等系统,yum 安装的时候有时候会安装32的,然而我们只需要安装64位的软件! 解决方法: yum只安装 64 位的包,只需在 /etc/yum.conf 中加入 "e ...