Web.config
웹 계층과 다른 계층 의 파일에서 키를 읽으려고합니다 (동일한 솔루션)
여기 내가 시도하는 것이 있습니다 :
string userName = System.Configuration.ConfigurationManager.AppSettings["PFUserName"];
string password = System.Configuration.ConfigurationManager.AppSettings["PFPassWord"];
그리고 여기 파일에 내 appSettings
것이 Web.config
있습니다 :
<configuration>
....
<appSettings>
<add key="PFUserName" value="myusername"/>
<add key="PFPassWord" value="mypassword"/>
</appSettings>
....
</configuration>
내가 코드를 디버깅 할 때 username
와 password
단지이다 null
, 그래서 키의 값을받지 못하고있다.
이 값을 읽는 데 내가 뭘 잘못하고 있니?
답변
대신 WebConfigurationManager 클래스를 사용해보십시오. 예를 들면 다음과 같습니다.
string userName = WebConfigurationManager.AppSettings["PFUserName"]
답변
var url = ConfigurationManager.AppSettings["ServiceProviderUrl"];
답변
호출자가 다른 프로젝트 인 경우 호출 된 프로젝트가 아닌 호출자 프로젝트에 구성을 작성해야합니다.
답변
이 솔루션이 매우 유용하다는 것을 알았습니다 . C # 4.0 DynamicObject를 사용하여 ConfigurationManager를 래핑합니다. 따라서 다음과 같은 값에 액세스하는 대신
WebConfigurationManager.AppSettings["PFUserName"]
당신은 속성으로 그들을 액세스 :
dynamic appSettings = new AppSettingsWrapper();
Console.WriteLine(appSettings.PFUserName);
편집 : 링크가 오래 된 경우 코드 스 니펫 추가 :
public class AppSettingsWrapper : DynamicObject
{
private NameValueCollection _items;
public AppSettingsWrapper()
{
_items = ConfigurationManager.AppSettings;
}
public override bool TryGetMember(GetMemberBinder binder, out object result)
{
result = _items[binder.Name];
return result != null;
}
}
답변
전체 경로는
System.Configuration.ConfigurationManager.AppSettings["KeyName"]
답변
두 개의 Web.config 파일이 있습니다. 나는 당신이 그 두 파일과 혼동했을 수 있다고 생각합니다.
이 이미지를 확인하십시오 :
이 이미지에는 두 개의 Web.config 파일이 있습니다. 뷰 폴더가 아닌 프로젝트 폴더에있는 상수에 상수를 추가해야합니다.
이것이 당신을 도울 수 있기를 바랍니다
답변
다른 프로젝트에서이 프로젝트를 사용중인 경우이 문제가 발생합니다. 앱 설정 키를 상위 프로젝트의 app.config 또는 web.config에 복사하십시오.