[英]Web.config appSettings: complex values
Web.config 的 appSettings 部分是否只能存储这样的简单字符串?
<appSettings>
<add key="OKPage" value="http://mysite.com/okpage.html" />
</appSettings>
或者我可以有更复杂的值,如 CDATA 或嵌套值? 如果不是,这是 Web.config 中唯一存储自定义设置的地方吗? 谢谢
您可以将任何 XmlSerializable class 作为设置。
我在这里回答了类似的问题: 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>
自定义 class 进行设置:
public class EndPoint
{
public string HostName { get; set; }
public int Port { get; set; }
}
appSettings
中的键作为NameValueCollection
检索,根据定义
表示可以使用键或索引访问的关联字符串键和字符串值的集合。
因此,您只能将数据类型string
作为 AppSettings key
的value
是的, AppSettings
是唯一可以存储设置的地方。
MSDN 像这样定义 AppSettings。
包含自定义应用程序设置,例如文件路径、XML Web 服务 URL 或存储在应用程序的 .ini 文件中的任何信息。
AppSettings 部分是一个包含字符串的 NameValueCollection。 (NameValueCollection 有一个 Add(string, string) 方法。)如果您在键/值中使用 CDATA,那么它将只是作为字符串输入到集合中。 您必须自己将其解析为例如 XML。
AppSetttings 部分作为设置的前置部分,已经编写了一个包装器,您可以在其中从代码中访问密钥类型安全。 另一方面,您的 web.config 只是 XML,您可以在其中添加自己的类型。 您将需要编写一些代码来访问这些部分。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.