我试图在我的课中拉一些关键/值。这是一个C#类库项目(不是web项目),所以它有一个App.Config。C#项目和配置文件
在我的C#项目(类库),得到如下:
1)的实用方法从配置文件中提取一个键/值:
public class ConfigUtil
{
/// <summary>
/// Utility method to retrieve configuration setting values.
/// </summary>
/// <param name="configKey">Configuration Settings key to retrieve.</param>
/// <returns>empty string if key is null</returns>
public static string GetAppConfigSetting(string configKey)
{
return ConfigurationManager.AppSettings[configKey] ?? string.Empty;
}
}
此实用工具方法是在一个web项目中使用,我只是复制并粘贴到我的C#项目这个漂亮的助手,因为我需要这些身份验证和端点为我的C#项目中的一些代码中的第三方API authing。
2)甲Config.cs牵我查找
class Config
{
public static string SomeThirdPartyApiEndpoint
{
get { return ConfigUtil.GetAppConfigSetting("SomeThirdPartyApiEndpoint"); }
}
public static string SomeThirdPartyApiAuthUsername
{
get { return ConfigUtil.GetAppConfigSetting("SomeThirdPartyApiAuthUsername"); }
}
public static string SomeThirdPartyApiAuthPassword
{
get { return ConfigUtil.GetAppConfigSetting("SomeThirdPartyApiAuthPassword"); }
}
}
3)以我App.Config中,键/值:
<appSettings>
<add key="SomeThirdPartyApiEndPoint" value="http://someEndPointUrl.com/XMLAPI" />
<add key="SomeThirdPartyApiAuthUsername" value="someUserNameHere" />
<add key="SomeThirdPartyApiAuthPassword" value="5233s54" />
</appSettings>
4)一些示例代码在我的课程之一,在这个项目试图拉一个关键值:
string password = Config.SomeThirdPartyApiAuthUsername;
这条线是我的一个类的方法。
问题:它没有找到我的任何键/值。当我调试时,我得到一个空密码的字符串。
我假设我这样做是正确的,因为这些键/值需要放在我的App.Config中,因为我没有web.config,因为这不是一个Web项目。这是我创建的包装项目,用于将调用包装到第三方API。
另一个问题:那么如果Web.config不存在,ConfigurationManager.AppSettings会查找App.Config吗?我想知道这是怎么配置管理器拉...它只查找web.configs或任何可用的立即项目中的.config?
相关问题令人困惑......这是一个Web项目还是一个Windows项目? ASP.NET项目从web.config获取它们的设置... – Skyrim 2012-01-16 06:16:57
只是一个C#项目...普通的类库项目 – PositiveGuy 2012-01-16 06:22:51
好的,那么我就根据它部署的环境来决定使用哪个配置文件。您应该测试它,因为创建示例项目不需要很长时间。另外,请查看我的解决方案:) – Skyrim 2012-01-16 06:24:56