【问题标题】:I can not read my configuration file from another application我无法从另一个应用程序读取我的配置文件
【发布时间】:2019-03-07 06:28:21
【问题描述】:

我一直在尝试所有可能的方法,但我仍然无法。 在我的第一个应用程序中,我的配置文件只有一个选项。 我的第一个应用程序只会读取它,仅此而已。

我的第二个应用程序,将读取第一个应用程序的配置文件并可以进行更改。

这是我的 app.config:

<?xml version="1.0"?>
<configuration>
    <configSections>
        <sectionGroup name="applicationSettings" 
                      type="System.Configuration.ApplicationSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >

            <section name="TCambio.Properties.Settings" 
                     type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" 
                     requirePermission="false" />

        </sectionGroup>
    </configSections>
    <appSettings>
      <add key="thoras" value="3"/>
    </appSettings>
</configuration>

为了阅读关键 thoras,在我的第二个应用程序中,我执行以下操作:

    ConfigurationFileMap fileMap = new ConfigurationFileMap(strfilenamepath);
    Configuration configuration = ConfigurationManager.OpenMappedMachineConfiguration(fileMap);
    try
    {
        string value = configuration.AppSettings.Settings["thoras"].Value;
        MessageBox.Show(value);
    }
    catch (Exception ex)
    {
        MessageBox.Show("Error loading file. " + ex.Message);
    }

但我收到以下错误:

无法将“System.Configuration.DefaultSection”类型的对象转换为“System.Configuration.AppSettingsSection”类型

【问题讨论】:

  • 看来是选角问题。你能发布 DefauleSection 和 AppSettingsSection 类吗?

标签: c# configuration app-config


【解决方案1】:

您遇到的问题是由于在 ConfigurationManager 上使用了 OpenMappedMachineConfiguration 方法。这用于访问 machine 级别的 .config 文件,而不是用于特定应用程序的文件。

如果您将代码更新为:

var fileMap = new ExeConfigurationFileMap
{
    ExeConfigFilename = strfilenamepath
};
var configuration = ConfigurationManager.OpenMappedExeConfiguration(
                        fileMap, ConfigurationUserLevel.None);

因此您改为访问应用程序的配置,您应该会发现对MessageBox.Show 的调用现在将成功并显示数字“3”。

【讨论】:

    猜你喜欢
    • 2016-08-03
    • 1970-01-01
    • 2021-08-07
    • 1970-01-01
    • 1970-01-01
    • 2018-01-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多