【问题标题】:Read Config file of Another Application in WPF App by C#通过 C# 读取 WPF App 中另一个应用程序的配置文件
【发布时间】:2018-01-09 03:11:16
【问题描述】:

在我的 WPF 应用程序(C#、.Net Framework 4.5)中, 我需要阅读另一个应用程序配置文件。

         var configFileMap = new ExeConfigurationFileMap
            {
                ExeConfigFilename = "ChildApp.exe.config"
            };

          // Configuration object
          Configuration libConfig = 
           ConfigurationManager.OpenMappedExeConfiguration(configFileMap, 
            ConfigurationUserLevel.None);

            // Get the section
            section = (libConfig.GetSection("appSettings") as 
                        AppSettingsSection);
            // Getting the value
            configValue = section.Settings["DBServer"];

但是 configValue 什么也没得到,因为 Setting 字典中没有这样的值。 我还尝试在配置文件中使用“userSettings”,部分名称就是那个。

section = (libConfig.GetSection("userSettings") as 
                        AppSettingsSection);

在这种情况下,我在“部分”值中得到空值。

这是我的配置文件

 <?xml version="1.0" encoding="utf-8" ?>
  <configuration>
  <configSections>
    <sectionGroup name="userSettings" 
    type="System.Configuration.UserSettingsGroup, System, Version=4.0.0.0, 
 Culture=neutral, PublicKeyToken=b77a5c561934e089" >
        <section name="ChildApp.Properties.Settings" 
 type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, 
 Culture=neutral, PublicKeyToken=b77a5c561934e089" 
  allowExeDefinition="MachineToLocalUser" requirePermission="false" />
    </sectionGroup>
 </configSections>
 <startup> 
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
 </startup>
 <userSettings>
    <ChildApp.Properties.Settings>
        <setting name="DBServer" serializeAs="String">
            <value>MyServer</value>
        </setting>
        <setting name="Database" serializeAs="String">
            <value>MyDatabase</value>
        </setting>
        <setting name="DBUser" serializeAs="String">
            <value>sa</value>
        </setting>
        <setting name="DBPassword" serializeAs="String">
            <value>password123</value>
        </setting>
        <setting name="ErrorReportingEmail" serializeAs="String">
            <value>helpdesk@mydomain.com</value>
        </setting>
    </ChildApp.Properties.Settings>
    </userSettings>
    </configuration>

我用谷歌搜索,但找不到任何可行的解决方案。 你能帮我找出问题所在吗? 谢谢。

【问题讨论】:

    标签: c# wpf config app-config


    【解决方案1】:

    您可以像这样获取用户设置:-

    var user = (ConfigurationSection)ConfigurationManager.GetSection("userSettings");
    

    【讨论】:

      【解决方案2】:
      XDocument xdoc = XDocument.Load(@"C:\Users\Administrator\Documents\Visual Studio 2013\Projects\MyProject\MyProject\bin\MyProject.dll.config");
                  var p = xdoc.Element("configuration").Element("userSettings").Elements();
                  foreach (XElement item in p)
                  {
                      if(item.FirstAttribute.Value == "DBServer")
                      {
                          string dbserver = item.Value;
                      }
      
                  }
      

      在 XDoc 中加载配置文件并像上面一样解析。你可以得到任何你想要的字段。

      这里需要添加using System.Xml.Linq;

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-03-07
        • 1970-01-01
        • 2014-10-19
        • 1970-01-01
        • 2014-08-05
        • 1970-01-01
        • 2012-09-27
        • 1970-01-01
        相关资源
        最近更新 更多