如何使用导入的C#项目的应用程序配置
我正在使用VisualStudio2010和C#4.0。我有一个向Web服务公开接口的项目。它有一个app.config,用于定义Web服务的绑定。我想将此项目作为库公开给其他客户端使用 但是,当我尝试在客户机项目(比如控制台应用程序)中导入此库项目时,会出现一个错误,因为它找不到任何与webservice关联的配置文件如何使用导入的C#项目的应用程序配置,c#,visual-studio-2010,app-config,C#,Visual Studio 2010,App Config,我正在使用VisualStudio2010和C#4.0。我有一个向Web服务公开接口的项目。它有一个app.config,用于定义Web服务的绑定。我想将此项目作为库公开给其他客户端使用 但是,当我尝试在客户机项目(比如控制台应用程序)中导入此库项目时,会出现一个错误,因为它找不到任何与webservice关联的配置文件 有没有一种方法可以在我的库项目中使用app.config,这样我的客户就可以使用它,而不必定义他们自己的配置文件?稍微更改一下库项目如何: 将库项目生成操作中的app.conf
有没有一种方法可以在我的库项目中使用app.config,这样我的客户就可以使用它,而不必定义他们自己的配置文件?稍微更改一下库项目如何:
在此之后,任何使用此库的项目都应该能够不用担心这些设置。首先创建一个实用函数,如下所示。此函数应该位于可以从web服务(当然还有主项目)调用的库或类中。最好在web服务中添加对此库的引用
public static string GetAppConfigValue(string key)
{
return ConfigurationManager.AppSettings[key] ?? GetAppConfigValue(GetAppConfigFileName(), key);
}
private static string GetAppConfigValue(string appConfigFileName, string key)
{
ExeConfigurationFileMap fileMap = new ExeConfigurationFileMap();
fileMap.ExeConfigFilename = appConfigFileName;
Configuration appConfig = ConfigurationManager.OpenMappedExeConfiguration(fileMap, ConfigurationUserLevel.None);
return appConfig.AppSettings.Settings[key].Value;
}
现在,如果可以从主项目调用
GetAppConfigValue(string)
,它将返回缓存的app.config的值,因为它是自己的配置文件。当公共函数返回映射的配置设置时,您还可以从web服务项目调用该函数。这里棘手的部分是正确提供配置文件的完整路径 问题是,如果您没有足够的权限写入该文件夹,它将不起作用,这是非管理员用户Program File的情况->将文件写入AppData并从那里读取。顺便说一句,这重复了很多次!