看过TerryLee介绍EL 1.1中“配置应用程序块”之后,再看EL 3.1的文档,我很疑惑——没有看到和“配置应用程序块”相关的文字。难道看漏了?于是我又搜索了一遍,找到“Configuring the Application Blocks”,仔细阅读了一遍,仍然很迷茫。因为这篇文章只讲了如何编辑配置文件,并没有讲如何在程序中使用配置,最主要的是如何加载配置,或者说把配置从配置文件中读出来。这咋办呢?不能加载不是和没有一样嘛。
很偶然的,我想起来安装EL 3.1的时候,看到有代码示例的,何不看看它的例子,或许能有帮助。
我去代码示例目录下,看了一圈,只有“Configuration-Migration”看起来和配置有点关系,打开试试看吧。用vs2005打开,编译,运行后弹出一个窗口,上面有一段话:
(大意:这个示例没有使用EL。本示例是帮助那些使用EL早期版本中的配置应用程序块的用户,迁移到.NET Framework 2.0中的System.Configuration。EL Core中的配置功能,对使用EL的开发者来说,通常用不到;它主要向EL的其他程序块提供服务。)
看完了这段话,我恍然大悟:哦,原来.net 2.0有管理配置的功能,替代了EL 1.1中的“配置应用程序块”。哈哈,接下来就好办了,学一下System.Configuration如何使用就完事了。
google一把,网上的文章不少,讲解也很全面。所以我这里就不再重复介绍了,列出链接。
自定义应用程序配置文件 http://www.cnblogs.com/hobe/archive/2005/10/19/258245.html
(转).net Framework 2.0 专门提供了配置文件的操作 http://www.cnblogs.com/anny-1980/articles/1057510.html
两篇文章介绍了2种不同的方法。个人推荐后面一种,因为在程序版本发生变化使得配置项发生变化时,进行兼容性检查很容易(只要改exe或dll的版本号和配置文件中的版本号)。“Configuration-Migration”中使用的是后一种方法。
后面一篇文章没有找到原文,只找到转载之后的版本。如果有人知道原文,或者原作者看到这篇文章,请告诉我,谢谢。
多说一点,配置文件中
<section name="Hello" type="Hello.World, HWE, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
type各项的含义:
Hello.World - 命名空间+类名(namespace+class name);假设namespace为“Hello”,class name为“World”
HWE - dll或exe的名称,不包括后缀;假设为“HWE.exe"
Version - dll或exe的版本;假设为"1.0.0.0"