.net AppSettings历史琐事

时间:2009-03-18 16:32:41

标签: .net

我以前习惯性地工作的开发人员之一,一直使用:

 ConfigurationSettings.AppSettings["Foo"].ToString()

由于AppSettings集合项已经是字符串,所以它有点像我,但我想知道:在.net 1.0和1.1的古代时代,集合是否将其项目存储为类型Object,需要ToString()调用?

3 个答案:

答案 0 :(得分:5)

不,AppSettings始终是NameValueCollection,其中string键和string值。

来源:MSDN

答案 1 :(得分:4)

正如约翰已经提到的,ConfigurationSettings.AppSettings是一个NameValueCollection,它将项目作为字符串返回。

就个人而言,我讨厌看到这种代码...人们将ToString()调用几乎所有属性,无论它是否首先返回一个字符串。不幸的是,我经常看到它。我的猜测是,它让人们感到安慰......不知何故,好像他们遵循建议的编写漂亮代码的指导方针。 :P

他们似乎没有意识到在Null对象上调用ToString()会抛出异常。例如,在您的示例中,如果Configuration的AppSettings部分中不存在“Foo”键,则代码将抛出NullReferenceException

答案 2 :(得分:0)

没有1.1中的appsettings是NameValueCollection的字符串,我正在审查vs2003中的解决方案,我也在获取appsettings时找到ToString();也许这是开发者的习惯