我如何从 web.config 中提取自定义 XML 用于另一个 class?

How can I grab extract custom XML from web.config for use in another class?

我目前有一个名为 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 节点