2012-12-08 3 views
0

3 세트의 문자열 모음 (사용자 책갈피 및 기타 항목)을 저장해야하는 응용 프로그램이 있습니다. C# 프로젝트에 "Setting File"을 추가하고 Specialized String Collection 유형의 세 가지 설정 변수를 만들었습니다. 모든 컬렉션에 문자열을 추가하고 Settings.Default의 .Save() 메서드를 호출 할 수 있기 때문에 모든 것이 잘된 것처럼 보입니다. 생성 된 "user.config"파일 내에서 예쁜 문자열 컬렉션을 볼 수 있습니다.C# 설정 파일 -로드하는 방법?

언제 이러한 값이로드됩니까? 설정의 .Load() 메소드는 없습니다. Settings.- 설정 변수 이름에 액세스하려고 시도하면 null 예외 오류가 발생하므로 분명히 이러한 값은 시작시 자체적으로로드되지 않습니다.

무엇이 누락 되었습니까?

+1

프로그램을 시작할 때 자동으로로드됩니다. 보고 있어야하는 것을 보지 못한다면 코드를 게시해야합니다. 그렇지 않으면 아무도 문제를 재현 할 수 없습니다. –

+0

설정 파일은 실행 가능 프로그램 자체와 동일한 디렉토리에 있어야합니다. –

+0

user.config 파일은 \ AppData \ Local \ 디렉터리에 저장됩니다. 어쨌든, 난 내 프로젝트에서 설정 파일을 날려 버리고 다시 만들었다. 이제 의도 한대로 작동합니다. 무슨 일이 일어 났는지 모르겠다. 원래는 "설정 1"의 이름을 변경했습니다. 창조 이후에 다른 이름으로 - 그것은 어색한 행동과 관련이있을 수 있습니다. –

답변

1

아마도 응용 프로그램 및 설정 파일의 버전이 다르면 문제가있는 것일까 요? ApplicationSettingsBase.Upgrade으로 전화하여 이전 설정을 새 버전으로 마이그레이션하십시오.

Upgrade은 실제로 설정을 업데이트 한 경우에만 한 번 호출해야합니다. 다음 때 응용 프로그램이로드를 사실의 기본 값으로 NeedsUpgrade라는 설정 속성을 만들고 실행 : 설정 파일의 새 버전을 만들 때이와

if (Settings.Default.NeedsUpgrade) 
{ 
    Settings.Default.Upgrade(); 
    Settings.Default.NeedsUpgrade = false; 
    Settings.Default.Save(); 
} 

, Upgrade에만 호출됩니다.