2011-02-28 3 views
2

내 C# 프로그램 (.net v4, MS Visual C# Express)에서 ListDictionary 클래스의 설정을 사용하려고합니다.ListDictionary 클래스 설정 사용 (Settings.settings)

<setting name="StringTest" serializeAs="String"> 
     <value>Llama llama LLAMA!</value> 
    </setting> 
    <setting name="LDTest" serializeAs="Xml"> 
     <value /> 
    </setting> 
다음 user.config 파일이 아니라 ListDictionary 설정 (발췌)와, 캐릭터 설정으로 작성된 것입니다, 내 코드를 실행 한 후

// String setting 
Properties.Settings.Default.StringTest = "Llama llama LLAMA!"; 

// ListDictionary setting 
ListDictionary ld = new ListDictionary(); 
ld.Add("key1", "llama"); 
ld.Add("key2", "alpaca"); 

Properties.Settings.Default.LDTest = ld; 

// Save settings 
Properties.Settings.Default.Save(); 

:

여기 내 테스트 코드입니다

목록 사전은 일련 번호 here으로 나열되어 있지만 설정 파일에 가져 오기 위해 수행해야 할 몇 가지 수동 작업이 있습니까? 또한 어떤 클래스/유형을 설정으로 사용할 수 있는지, 어떤 클래스/유형을 사용할 수 없는지 파악할 수있는 방법이 있습니까?

+0

이 해결에 대한 가능성은. ListDictionary를 직렬화하지 못하게하는 예외의 스크린 샷을 첨부했습니다. –

+0

나는 모든 예외를 던지기를 켜고 try/catch를 사용하여 오류를 트래핑하려고 시도했지만 오류가 발생하도록 할 수는 없습니다. 그것이 비록 오류가 될 것이라고 생각합니다. – ak112358

+0

아, 디버그 설정에서 내 코드를 활성화 했습니까? .NET Framework 소스 스테핑이 필요합니다. 이 예외는 프레임 워크 소스 내에서 처리됩니다. 이전에 그렇게 생각하지 않아서 사과드립니다. 내 코드 만 사용하는 경우 알려지지 않은 예외 및/또는 발생 된 예외 만 볼 수 있습니다. 이전 게시물에 몇 가지 제안을 추가했습니다. –

답변

1

이 예외가 나타나기를 원하면 Break When Exceptionions with .NET Framework Source Stepping이 활성화되어 있는지 확인하십시오. 복잡한 데이터 유형을 Settings.settings 파일에 직렬화 할 생각은 없지만 실제로이 작업을 수행 할 때 죽은 경우 세미콜론과 쉼표로 구분 된 문자열로 직렬화 할 수 있습니다.

Make sure you have Break When Exceptions thrown enabled

+0

또한 설정 파일은 간단한 속성 설정에 유용하지만 복잡한 값이나 데이터를 저장하는 데 사용하는 경우 해당 데이터를 저장하는 자체 방법을 제공하는 것이 좋습니다. –