Gra*_*ton 22 .net c# system.configuration configuration-files appsettings
我有一个带App.Config文件的exe .现在我想在exe周围创建一个包装器dll,以便消耗一些功能.
问题是如何从包装器DLL访问exe中的app.config属性?
也许我应该在我的问题中多一点,我有以下app.config内容与exe:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<appSettings>
<add key="myKey" value="myValue"/>
</appSettings>
</configuration>
Run Code Online (Sandbox Code Playgroud)
问题是如何从包装器dll中取出"myValue"?
谢谢你的解决方案.
实际上我最初的概念是避免使用XML文件读取方法或LINQ或其他任何方法.我首选的解决方案是使用配置管理器库等.
我将非常感谢使用通常与访问app.config属性相关联的类的任何帮助.
Esp*_*spo 23
该ConfigurationManager.OpenMappedExeConfiguration方法可以让你做到这一点.
来自MSDN页面的示例:
static void GetMappedExeConfigurationSections()
{
// Get the machine.config file.
ExeConfigurationFileMap fileMap =
new ExeConfigurationFileMap();
// You may want to map to your own exe.comfig file here.
fileMap.ExeConfigFilename =
@"C:\test\ConfigurationManager.exe.config";
System.Configuration.Configuration config =
ConfigurationManager.OpenMappedExeConfiguration(fileMap,
ConfigurationUserLevel.None);
// Loop to get the sections. Display basic information.
Console.WriteLine("Name, Allow Definition");
int i = 0;
foreach (ConfigurationSection section in config.Sections)
{
Console.WriteLine(
section.SectionInformation.Name + "\t" +
section.SectionInformation.AllowExeDefinition);
i += 1;
}
Console.WriteLine("[Total number of sections: {0}]", i);
// Display machine.config path.
Console.WriteLine("[File path: {0}]", config.FilePath);
}
Run Code Online (Sandbox Code Playgroud)
编辑:这应输出"myKey"值:
ExeConfigurationFileMap fileMap =
new ExeConfigurationFileMap();
fileMap.ExeConfigFilename =
@"C:\test\ConfigurationManager.exe.config";
System.Configuration.Configuration config =
ConfigurationManager.OpenMappedExeConfiguration(fileMap,
ConfigurationUserLevel.None);
Console.WriteLine(config.AppSettings.Settings["MyKey"].Value);
Run Code Online (Sandbox Code Playgroud)
经过一些测试,我发现了一种方法.
System.Configuration.ConfigurationManager.AppSettings["myKey"]访问值.| 归档时间: |
|
| 查看次数: |
23734 次 |
| 最近记录: |