配置文件,怎么读??

在用.NET 做机房系统时,遇到了配置文件.config文件,不太懂什么意思,就照葫芦画瓢,自己建立一个.config文件来存放自己的东西,可是到了实现阶段,出问题了,我的配置文件,没有被读取。

经过各种实践,终于把我自定义的配置文件里的参数放到系统默认的app.config文件中,就可以用了。

以为,一个项目只可以有一个配置文件,可是为什么我的其他程序集中也可以建立.config 文件呢??

 有很多人在使用config文件都是直接使用appSetting的,把所有的配置参数全都塞到那里,这样做虽然不错,但是如果参数过多,这种做法的缺点也会明显地暴露出来:appSetting中的配置参数项只能按key名来访问,不能支持复杂的层次节点也不支持强类型,而且由于全都只使用这一个集合,你会发现:完全不相干的参数也要放在一起!在网上搜到了一些方法

自定义配置节点

首先,我们来看一下如何在app.config中增加一个自定义的配置节点。最终的配置文件如下:

 

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <configSections>
        <section name="MySection111" type="RwConfigDemo.MySection1, RwConfigDemo" />
        <section name="MySection222" type="RwConfigDemo.MySection2, RwConfigDemo" />
        <section name="MySection333" type="RwConfigDemo.MySection3, RwConfigDemo" />
        <section name="MySection444" type="RwConfigDemo.MySection4, RwConfigDemo" />
    </configSections>

    <MySection111 username="fish-li" url="http://www.cnblogs.com/fish-li/"></MySection111>

    <MySection222>
        <users username="fish" password="liqifeng"></users>
    </MySection222>

    <MySection444>
        <add key="aa" value="11111"></add>
        <add key="bb" value="22222"></add>
        <add key="cc" value="33333"></add>
    </MySection444>

    <MySection333>
        <Command1>
            <![CDATA[
                create procedure ChangeProductQuantity(
                    @ProductID int,
                    @Quantity int
                )
                as
                update Products set Quantity = @Quantity 
                where ProductID = @ProductID;
            ]]>
        </Command1>
        <Command2>
            <![CDATA[
                create procedure DeleteCategory(
                    @CategoryID int
                )
                as
                delete from Categories
                where CategoryID = @CategoryID;
            ]]>
        </Command2>
    </MySection333>    
</configuration>


自定义配置文件 

又说回来,我自定义的配置文件为什么么有被读取,这就涉及到了文件的读取了。

如果我们不给程序设定路径的话,默认读取的系统的app.config 文件,所以我们自定义的配置文件没有被读取。

要想让自己的配置文件被读取,就需要设置文件的读取路径。

.net有一个ConfigurationManager类可以方面的读取默认的配置文件,如果要读取自定义配置文件,这个类也提供了方法,如下所示:

var configMap = new ExeConfigurationFileMap { ExeConfigFilename = configFile };
   var config = ConfigurationManager.OpenMappedExeConfiguration(configMap, ConfigurationUserLevel.None);
   var configurationSection = config.GetSection(sectionName);

 

配置文件的种类

其实配置文件不一定就是.config 。 也可以用一个记事本,或者是XML 来写。只要我们给出合理的读取路径,就可以把我们需要的信息读取进去。(未完,待续)

 详细博文地址:http://wyx-921.blog.163.com/blog/static/197369279201312894216590/

 

你可能感兴趣的:(配置问津)