c# - 如何从 web.config 中提取自定义 XML 以在另一个类中使用?
问题描述
我目前有一个名为PrioritizationSettings.config的 xml 文件,我需要将其合并到 Web.config 中。
我已将它直接移动到 Web.config 中,因为它在所有配置中都是相同的。
我注意到该项目正在使用这个不再存在的旧文件路径,因为我将 XML 直接移动到 Web.config 中。
public static PrioritizationSettings LoadPrioritizeSettings()
{
return LoadPrioritizeSettings(AppDomain.CurrentDomain.BaseDirectory + "__Configs\\PrioritizationSettings.config");
}
我希望能够从这里访问 Web.config 中的 PrioritizationSettings。因此,我可以只传递现在存在于 Web.Config 中的 XML 部分,而不是传递整个 XML 文件
在不使用 ConfigurationManager.GetSection() 的情况下是否有另一种方法可以做到这一点?我看过这个,我担心它可能会涉及更多。我只需要提取 XML。
解决方案
这似乎正在做我想做的事。
public static PrioritizationSettings LoadPrioritizeSettings()
{
return LoadPrioritizeSettings(AppDomain.CurrentDomain.BaseDirectory + "Web.config");
}
我现在传入整个 Web.config 文件。在 LoadPrioritizeSettings 内部,我有以下代码:
public static PrioritizationSettings LoadPrioritizeSettings(string configFile)
{
XmlReader xmlReader;
try { xmlReader = XmlReader.Create(configFile); }
catch (Exception ex) { throw ex; }
if (xmlReader == null)
return null;
XmlDocument xmlDoc = new System.Xml.XmlDocument();
xmlReader.Read();
xmlDoc.Load(xmlReader);
xmlReader.Close();
XmlNode xmlConfiguration = xmlDoc["configuration"];
if (xmlConfiguration == null)
throw new Exception("The root element (PrioritizationSettings) of the config file could not be found.");
XmlNode xmlPrioritizeSettings = xmlConfiguration["PrioritizationSettings"];
return prioritizeSettings;
}
所以我可以从 web.config 中获取 PrioritizationSetting 节点。
推荐阅读
- arm - 直接从汇编语言访问性能计数器的 ARMv7 指令
- dynamic-programming - 目标总和 [leetcode] 通过分配符号计算具有给定目标总和的子集
- mongodb - 删除没有内容的记录
- javascript - Angular Typescript:Swagger CodeGen Generator 使所有类属性为 Nullable
- java - 使用 Java 查找区域的标准时间名称
- python - Dask Dataframe 高效行对生成器?
- chromium - 无头铬 - 在从命令行打印到 pdf 之前解析 javascript
- python - 为 Python 编写了二进制搜索算法,包括递归和迭代版本。你如何判断他们的效率?
- python - 饼图的查询集
- c# - 在 linq join 中合并等于