Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在C中读取不同应用程序的App.Config#_C#_.net_App Config - Fatal编程技术网

C# 如何在C中读取不同应用程序的App.Config#

C# 如何在C中读取不同应用程序的App.Config#,c#,.net,app-config,C#,.net,App Config,我有一个用C#编写的控制台应用程序,它使用app.config文件。此应用程序旨在使用任务计划程序在服务器上运行。现在我想开发一个从app.config读写的UI。(请注意,此配置无意替换UI应用程序的配置文件。) 但是我很难从文件中读取设置。使用ConfigurationManager,我可以打开配置文件,但无法访问配置设置 这是Visual Studio(2010)生成的示例配置文件: 我也试过这个: var userSection = config.GetSection("Accessin

我有一个用C#编写的控制台应用程序,它使用app.config文件。此应用程序旨在使用任务计划程序在服务器上运行。现在我想开发一个从app.config读写的UI。(请注意,此配置无意替换UI应用程序的配置文件。)

但是我很难从文件中读取设置。使用ConfigurationManager,我可以打开配置文件,但无法访问配置设置

这是Visual Studio(2010)生成的示例配置文件:

我也试过这个:

var userSection = config.GetSection("AccessingConfigSample.Properties.Settings");
两者都返回null

那么我做错了什么


非常感谢您的任何帮助或提示

您作为示例使用的配置文件使用的是,需要使用配置元素上的匹配方法来读取,而不是
GetSection

以下代码段将SectionGroup的内容输出到调试控制台:

if (File.Exists(configFile))
{
    var configMap = new ExeConfigurationFileMap { ExeConfigFilename = configFile };
    var config = ConfigurationManager.OpenMappedExeConfiguration(configMap, ConfigurationUserLevel.None);
    // get the sectionGroup!
    var userSectionGroup = config.GetSectionGroup("userSettings");
    foreach (var userSection in userSectionGroup.Sections)
    {
        // check for a ClientSettingSection
        if (userSection is ClientSettingsSection)
        {
            // cast from ConfigSection to a more specialized type
            var clientSettingSect = (ClientSettingsSection) userSection;
            foreach (SettingElement clientSetting in clientSettingSect.Settings)
            {
                Debug.WriteLine(String.Format("{0}={1}", clientSetting.Name, clientSetting.Value.ValueXml.InnerText ));
            }
        }

    }
}
请注意,我将对象实例强制转换为以检索设置值(即)

如果将其与您提供的示例配置一起使用,“调试输出”窗格中的结果应为:

ApplicationTitle=访问配置文件
版本号=V1.0

试试
config.GetSectionGroup(“userSettings”)[“AccessingConfigSample.Properties.Settings”]
。你也可以简单地将文件解析为任何XML文件…@Crono:我想将其解析为XML文件,但我想把它留给.net的配置程序集。
var userSection = config.GetSection("AccessingConfigSample.Properties.Settings");
if (File.Exists(configFile))
{
    var configMap = new ExeConfigurationFileMap { ExeConfigFilename = configFile };
    var config = ConfigurationManager.OpenMappedExeConfiguration(configMap, ConfigurationUserLevel.None);
    // get the sectionGroup!
    var userSectionGroup = config.GetSectionGroup("userSettings");
    foreach (var userSection in userSectionGroup.Sections)
    {
        // check for a ClientSettingSection
        if (userSection is ClientSettingsSection)
        {
            // cast from ConfigSection to a more specialized type
            var clientSettingSect = (ClientSettingsSection) userSection;
            foreach (SettingElement clientSetting in clientSettingSect.Settings)
            {
                Debug.WriteLine(String.Format("{0}={1}", clientSetting.Name, clientSetting.Value.ValueXml.InnerText ));
            }
        }

    }
}