Settings.settings를 사용하여 일부 변수를 정의/유지하려고합니다. 간단히 말해서, 내가보고 있어요 동작을 설명하기위한 테스트 파일을 설정 한 :속성보기 설정. 기본 변수
내가 다음 코드를 가지고 :
첫째, 내가 Settings.settings의 설정을 정의 여기서 variableName 변경 테스트 :
public Form1()
{
InitializeComponent();
string newString = Properties.Settings.Default.variableName;
Properties.Settings.Default.variableName = "This is a new string";
Properties.Settings.Default.Save();
}
는 처음 디버거 상기 실행, I는 전류 값 Properties.Settings로부터 여기서 variableName의 (I 처음 Settings.settings 창에서 설정 한 값)을 잡아. 예상대로 newString은 "This is a string"으로 설정됩니다. 좋습니다 .....
디버거에서 variableName이 "This is a new string"으로 변경된 것을 보여줍니다. 좋습니다 ....
다음 디버거를 통해 응용 프로그램을 다시 실행하십시오. 문자열 newString 줄을 치고 실행 전에 newString이 정의되지 않았습니다. 좋은 ....
최대한 빨리 실행으로...
string newString = Properties.Settings.Default.variableName;
... 그리고 코드의 후속 실행에, 여기서 variableName의 실제 값은 "이 같이 정의된다 새로운 문자열입니다 "(Good ... 예상대로).
그런 다음 Settings.settings 창으로 돌아갑니다. variableName은 변경되지 않았습니다. 여전히 "This is a string"입니다. 나는 VSE 2012를 닫고 프로젝트를 다시 열었습니다. 설정. 설정이 변경되지 않습니다.
어디에 새로운 값이 저장됩니까? 모든 .config 파일 ([appname] .exe.config, [appname] .vshost.exe.config, app.config 및 Settings.settings 파일)과 새 값인 "This is a new- 문자열 "은 어디에도 없습니다.
요약하면 코드에서 원하는 결과가 나타나지만 디버거에서 var 값을 확인하는 것 이외의 다른 디자인 타임에 결과를 볼 수 없습니다. 이것은 나에게 특이한 것뿐만 아니라 불가능한 것처럼 보인다.
내가 무엇을 놓치고 있는지/어디에서 보지 않습니까? 나는 완전히 variableName의 값이 Settings.settings 창에서 변경 될 것으로 기대하지만 절대로 그렇지 않습니다. StackOverflow/Google 어디에서나 보았고 대답을 찾지 못하는 것 같습니다. 사전에
덕분에 ....
시간을내어 주셔서 감사합니다. Settings.settings 'var store'는 영속성을 필요로하는 사용자 범위에 하나의 var 만 가진 내 응용 프로그램에 대한 ConfigurationManager를 사용하는 것을 피하는 탁월한 방법 (IMO)입니다. 이제 위의 예에서 변경되는 파일을 찾을 수있게되었습니다 (경로를 포함 하겠지만 내 의견에 280 자 밖에 남지 않았습니다 ... 하하). Settings.settings 테이블을 사용하면 더욱 자신감을 가질 수 있습니다. 나는 그것이 부당한 편집증 인 것을 안다. 그러나 나는 적당한 사람이기 때문에 OCD 태그를 얻지 않았다. 친애하는... – LovinItAll