2010-03-11 3 views
3

설정이 잘못되었습니다. 알아낼 수없는 이상한 문제가 있습니다. ApplicationSettingsBase를 상속하는 사용자 지정 설정 클래스가 있습니다. 아래와 같이 사용자 범위 설정이 있습니다..NET Settings.Reload() 및 Settings.Save() 설정에 문제가 있습니다.

응용 프로그램 설정을 변경하는 기본 양식과 설정 양식의 두 가지 양식이 있습니다. SettingsForm을 만들고 AccountList Settings 값을 변경하면 user.config 파일이 excepected로 변경됩니다. 내 SettingsForm의 내 Apply/Ok 버튼은 Settings.Save()를 호출 한 다음 Settings.Reload()를 호출하여 양식을 닫습니다. 문제는 .Reload()가 호출 될 때 Settings.AccountList가 null이된다는 것입니다.

무슨 이상이 user.config 파일이 내가 응용 프로그램을 닫고 다시 열 경우 user.config 파일이 여전히 올바른지, 절대 변경,하지만 Settings.AccountList가에서 읽어 본 적이된다는 점이다.

설정을 사용합니다. AccountList는 .Reload()를 호출하지 않는다면 읽혀집니다.

업데이트 : 목록을 만들고 저장(); 내 MainForm에서 다음 AccountList 내 user.config 잘 읽습니다. 그러나 내가 보조 서식 (SettingsForm)을 사용하여 AccountList에 추가하고 Save()를 호출하면 다음에 응용 프로그램이 실행될 때 설정이 읽히지 않고 null 값이 반환됩니다. 이것은 Reload()를 사용하지 않아도 발생합니다.

문제는 일반 목록 <>을 사용하는 것과 관련이 있다고 생각합니다. 저장된 AccountKeyClass는 직렬화 된 XML로 저장됩니다.

답변

1

.Reload()에서도 비슷한 문제가 발생합니다. 그냥 킥을 위해 ... 릴리스에서 실행 해 보시거나, 설정에서 디버그 모드가 아닌 것을 시도해보십시오 (아직 수행하지 않은 경우).

+0

나뿐만 아니라이 추가됩니다. 그 당시에는 Designer/Debugger (VStudio)와 관련이 있다고 생각했습니다. 그래서 bin \ debug 디렉토리에서 바로 응용 프로그램을 실행하려고 했으므로 디버거가 연결되지 않았습니다. 나는 릴리스 버전에서 실행하려고하지 않았지만, 집에 도착하자마자 시도해 볼 것입니다. – galford13x

+0

이것이 작동하지 않는 것 같습니다. 하지만 원래 질문에 대한 업데이트가 추가되었습니다. – galford13x

1

AccountList 속성을 변경하거나 내용을 변경하고 있는지 확인하십시오.

목록 <에 항목을 추가하거나 제거하는 경우 - Settings.Save()는 속성이 변경된 것을 볼 수 없으므로 저장하지 않습니다. 이 같은

시도 뭔가 :

var temp = settings.AccountList; 
settings.AccountList = null; 
settings.AccountList = temp; 
settings.Save(); 
+0

.Save()가 변경된 값만 저장하거나 씁니다. 그것은 내가 .Add()를하고 있어도 내 기본 양식에서 .Save()를 찾을 때 작동하는 것 같습니다. 나는 이것을 시도하고 무슨 일이 일어나는지를 보게 될 것이다. 응답 해 주셔서 감사합니다. – galford13x

관련 문제