2017-08-02 93 views
-1

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

  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没有得到任何东西,因为在设置字典中没有这样的值。 我也尝试通过使用“userSettings”在配置文件中,部分名称是。

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

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

这里是我的配置文件

<?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>[email protected]</value> 
     </setting> 
    </ChildApp.Properties.Settings> 
    </userSettings> 
    </configuration> 

我用Google搜索,但没有找到该工程的任何解决方案。 你能帮我弄清楚什么是错的。 谢谢。

回答

0

你可以得到这样的usersettings: -

var user = (ConfigurationSection)ConfigurationManager.GetSection("userSettings"); 
0
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;

相关问题