클래스에서 일부 키/값을 가져 오려고합니다. 이것은 C# 클래스 라이브러리 프로젝트 (웹 프로젝트 아님)이므로 App.Config가 있습니다.C# 프로젝트 및 구성 파일
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;
}
}
이 유틸리티 방법이었다 : config 파일에서 키/값을 끌어
1) 유틸리티 방법 : 내 C# 프로젝트 (클래스 라이브러리)에서
다음을 얻었다 웹 프로젝트에서 사용되었고 C# 프로젝트의 일부 코드에서 제 3 자 API에 대한 인증을 위해 이러한 인증 및 끝점이 필요하기 때문에이 훌륭한 도우미를 복사하여 내 C# 프로젝트에 붙여 넣었습니다.4
<appSettings>
<add key="SomeThirdPartyApiEndPoint" value="http://someEndPointUrl.com/XMLAPI" />
<add key="SomeThirdPartyApiAuthUsername" value="someUserNameHere" />
<add key="SomeThirdPartyApiAuthPassword" value="5233s54" />
</appSettings>
)
일부 예 : 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에서, 키/값 잡아 이 프로젝트에서 키 값 중 하나를 가져 오는 중 내 클래스의 코드 :
string password = Config.SomeThirdPartyApiAuthUsername;
이 줄은 내 클래스 방법 중 하나입니다.
문제 : 내 키/값을 찾을 수 없습니다. 디버깅 할 때 암호에 빈 문자열이 표시됩니다.
웹 프로젝트가 아니기 때문에 Web.config가 없으므로이 키/값을 App.Config에 넣어야한다고 가정합니다. 이것은 제 3 자 API에 대한 호출을 래핑하기 위해 작성한 래퍼 프로젝트입니다.
다른 질문 관련 : 그런 다음 ConfigurationManager.AppSettings는 Web.config가없는 경우 App.Config를 찾습니다. 이 ConfigurationManager가 어떻게 가져 오는지 궁금합니다 ... web.configs 또는 모든 .config를 즉각적인 프로젝트에서 사용할 수 있습니까?
을 참조하십시오. 관련 질문은 혼란 스럽습니다 ...이 프로젝트는 웹 프로젝트입니까? ... ASP.NET 프로젝트는 web.config ... – Skyrim
에서 설정을 가져옵니다. C# 프로젝트 ...일반 클래스 라이브러리 프로젝트 – PositiveGuy
괜찮 으면, 배포 된 환경에 따라 __guessing__을 사용할 수있는 구성 파일을 사용하게됩니다. 샘플 프로젝트를 만드는 데 오랜 시간이 걸리지 않으므로 테스트해야합니다. 또한, 제 솔루션을 확인해주십시오 :) – Skyrim