Web.config appSettings:复杂的值

Web.config的appSettings部分是否只能存储这样的简单字符串?

   

或者我可以有更复杂的值,如CDATA或嵌套值? 如果没有,这是否是Web.config中存储自定义设置的唯一位置? 谢谢

您可以将任何XmlSerializable类作为设置。

我在这里回答了类似的问题: ASP.NET中的自定义类型应用程序设置
还附加了一个示例项目。

以下是我的配置文件中的设置示例:

     10.40.10.9 22634   10.40.10.9 22635     

设置的自定义类:

 public class EndPoint { public string HostName { get; set; } public int Port { get; set; } } 

appSettings中的键被检索为NameValueCollection ,根据定义

表示可以使用键或索引访问的关联String键和String值的集合。

因此,您只能将数据类型string作为AppSettings key value

是的, AppSettings是您存储设置的唯一地方。
MSDN定义了这样的AppSettings。

包含自定义应用程序设置,例如文件路径,XML Web服务URL或存储在应用程序的.ini文件中的任何信息。

AppSettings部分是一个NameValueCollection,它包含字符串。 (NameValueCollection具有Add(字符串,字符串)方法。)如果在键/值内使用CDATA,则它将作为字符串输入到集合中。 您必须自己解析它,例如XML。

AppSetttings部分作为设置的前置,已经编写了一个包装器,您可以从代码中访问密钥类型安全。 另一方面,您的web.config只是XML,您可以在其中添加自己的类型。 您需要编写一些代码来访问这些部分。