Web.config的appSettings部分是否只能存储这样的简单字符串?
<appSettings>
<add key="OKPage" value="http://mysite.com/okpage.html" />
</appSettings>
或者我可以有更复杂的值,如CDATA或嵌套值?如果没有,这是否是Web.config中存储自定义设置的唯一位置?感谢
答案 0 :(得分:5)
您可以将任何XmlSerializable类作为设置。
我在这里回答了类似的问题:Custom type application settings in ASP.NET
还附上了一个示例项目。
以下是我的配置文件中的设置示例:
<setting name="MyEndPoints"
serializeAs="Xml">
<value>
<ArrayOfEndPoint xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<EndPoint>
<HostName>10.40.10.9</HostName>
<Port>22634</Port>
</EndPoint>
<EndPoint>
<HostName>10.40.10.9</HostName>
<Port>22635</Port>
</EndPoint>
</ArrayOfEndPoint>
</value>
</setting>
设置的自定义类:
public class EndPoint
{
public string HostName { get; set; }
public int Port { get; set; }
}
答案 1 :(得分:5)
appSettings
中的键被检索为NameValueCollection
,根据定义
表示关联的集合 字符串键和字符串值可以 可以使用密钥或访问 与索引。
因此,对于AppSettings string
value
设置为key
是的,AppSettings
是您存储设置的唯一地方
MSDN定义了这样的AppSettings。
包含自定义应用程序设置, 例如文件路径,XML Web服务 URL或任何信息 存储在.ini文件中 应用
答案 2 :(得分:0)
AppSettings部分是一个NameValueCollection,它包含字符串。 (NameValueCollection具有Add(字符串,字符串)方法。)如果在键/值内使用CDATA,则它将作为字符串输入到集合中。您必须自己解析它,例如XML。
AppSetttings部分作为设置的前置,已经编写了一个包装器,您可以从代码中访问密钥类型安全。另一方面,您的web.config只是XML,您可以在其中添加自己的类型。您需要编写一些代码来访问这些部分。