我試圖在我的課中拉一些關鍵/值。這是一個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