2017-08-02 16 views
-1

で読み込みます。WPFアプリケーション(C#、.Net Framework 4.5)で、 別のアプリケーション設定ファイルを読み込む必要があります。WPFアプリケーションの別のアプリケーションの設定ファイルをC#

  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には、そのような値が設定されていないため何も得られません。 私もconfigファイルのように "userSettings"を使って試しました、セクション名はそれです。

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

この場合、「セクション」の値がnullになっています。ここで

が私のconfigファイル

<?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> 

である私は、グーグルが、働くすべての解決策を見つけることができませんでした。 何が間違っているか把握するのに手伝ってください。おかげさまで

答えて

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のconfigファイルをロードし、上記のように解析します。あなたはあなたが望むフィールドを手に入れることができます。

ここでusing System.Xml.Linq;を追加する必要があります。

関連する問題