如何在web.config中添加xml?

我有一些复杂的数据用于xml格式的应用程序配置。 我想在web.config中保留这个xml字符串。 是否可以在web.config中添加一个大的xml字符串并在代码中获取它?

如果您不想编写配置节处理程序,可以将XML放在映射到IgnoreSectionHandler的自定义配置节中:

   
... ... complex XML ... ...

然后,您可以使用任何XML API读取它,例如XmlDocumentXDocumentXmlReader类。 例如:

 XmlDocument doc = new XmlDocument(); doc.Load(AppDomain.CurrentDomain.SetupInformation.ConfigurationFile); XmlElement node = doc.SelectSingleNode("/configuration/myCustomElement") as XmlElement; ... etc ... 

有几种方法可以实现您想要的(一个可以全局和静态访问应用程序代码的XML片段):

  • web.config 已经是一个XML文件。 您可以编写自定义配置部分(如此处所述),以便从自定义XML中获取数据。

  • 您可以对XML数据进行编码(所有< to <> to &gt ; & to &" to to "e;

  • 您可以将XML数据放在部分中

  • 不要使用web.config ,而是使用@Yuck评论的Settings文件

就易于开发和使用而言,最后一个选项是最好的选择。

web.config中的配置部分支持长字符串,但字符串必须是单行文本,以便它们可以适合属性:

   

该字符串也不能包含引号或换行符或其他XML标记字符。 数据基本上是XML,必须进行适当的编码。

例如,如果你有这样的XML:

   10  

它必须存储在这样的配置值中:

  

哪种方式违背了配置元素的目的。

最好将配置值存储在文件系统上的单独文件中,然后将其从那里读入字符串或XmlDocument等。