[英]C# App.config Embedded Resource in Visual Studio
Visual Studio 可以选择将 App.config 文件的构建操作应用为“嵌入式资源”,这意味着在同一个最终 exe 中包含 App.config 的内容。 美好的。
问题是:如何读取嵌入式 App.config 里面的数据? 例如来自给定键的 appSetting 值?
我之前用来从 App.config 读取的代码(物理上写在磁盘上的代码,通常是 nameoftheprogram.exe.config),似乎不再工作了。
string s = System.Configuration.ConfigurationManager.AppSettings["mykey"];
可能它必须重新适应为这项工作设计的其他 C# 类。
有任何想法吗?
您可以使用接口 IConfigUtility 方法:
IConfigUtility.cs:
public interface IConfigUtility
{
string LogFilePath
{
get;
}
string GetAppSetting(string key);
}
配置实用程序.cs
using System;
using System.Configuration;
public class ConfigUtility : IConfigUtility
{
Configuration config = null;
public string LogFilePath
{
get
{
return GetAppSetting(@"Code to read the log file path");
}
}
public ConfigUtility()
{
var exeConfigPath = this.GetType().Assembly.Location;
try
{
config = ConfigurationManager.OpenExeConfiguration(exeConfigPath);
}
catch (Exception)
{
//handle error here.. means DLL has no satellite configuration file.
}
}
public virtual string GetAppSetting(string key)
{
if (config != null)
{
KeyValueConfigurationElement element = config.AppSettings.Settings[key];
if (element != null)
{
string value = element.Value;
if (!string.IsNullOrEmpty(value))
return value;
}
}
return string.Empty;
}
}
现在您可以使用上面的 ConfigUtility.cs 并从 App.config 文件中读取您的 appsettings 密钥
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.