2011-04-08 5 views
0

이 질문은 이미 답변 된 것으로 보입니다. 그러나 해결책은 저에게 맞지 않습니다. 여기에 이전 질문이 있습니다 : Can you have a generic List(of T) in your settings file?app.config 내에 일반 목록을 저장할 수 있습니까?

내가하려는 것은 내 app.config 안에 구조의 일반 목록을 저장하는 것입니다. (즉, 두 개의 필드로 정의 된 구조가 있고 app.config 내에서 그 목록을 저장하고 싶습니다)

이것이 가능합니까? 위에 질문 된 링크는 몇 가지 해답을 가지고 있지만 작동하지 않는 것 같습니다 ...

답변

1

종류 ... 두 필드가 문자열로 직렬화된다고 가정하면 사용자 지정 구성 섹션을 만들어 XML에 직접 저장할 수 있습니다. 그런 다음 목록 (YourCustomTwoFieldClass 중)과의 직렬화를 관리하는 사용자 정의 섹션 처리기를 작성해야합니다. 아무것도 모든 일을 하나의 문자열로 직렬화하고 AppSetting에서 채우는 것을 막을 수는 없습니다. 그런 다음 필요할 때 비 직렬화 할 수 있습니다.

편집 : 원래 질문을 보면 데이터를 저장할 적절한 장소가 아닙니다. 그것은 "프로파일"정보에 전혀 도움이되지 않습니다. 필자는 항상 app.config를 동적으로 재 작성하는 것보다 내 자신의 플랫 파일을 유지 보수합니다. "정적"응용 프로그램 전체의 구성 값에 사용하는 것이 가장 좋습니다.

자신 만의 간단한 프로필 제공 업체에 대해 생각해 보셨습니까? 언제 어떻게 정보를 유지할 수 있는지에 대한 모든 종류의 유연성을 제공합니다.

0

물론 ... 목록을 serialize하고 AppSetting을 업데이트하고 다시 읽으면 deserialize 할 수 있습니다.

0

예는

나는 다음과 같은 구조를 사용

키 'Properties.Settings.Default.ConfigName'

BillGatesSubhashLama

설정 아래 app.confing 파일에 다음 코드를 삽입 할 수 예를하다 클래스도 사용할 수 있습니다 : public struct EmpName { public string FirstName {get; 세트; } public string LastName {get; 세트; } }

하지 마지막 단계 목록에서 값을 얻을 : 복사가 여기에 붙여있는 동안 당신이 당신의 답변을 얻을 경우

 XmlSerializer se = new XmlSerializer(typeof(List<EmpName>)); 
     TextReader tr = new StringReader(Properties.Settings.Default.ConfigName); 
     XmlReader sr = XmlReader.Create(tr); 
     List<EmpName> names = (List<EmpName>)se.Deserialize(sr); 

저를 투표주세요

cofig 항목이 보인다
0

이 변경되었습니다 수 그 중 하나입니다

<? xml version = "1.0"encoding = "utf-16"? > < ArrayOfEmpName xmlns : xsi = "http://www.w3.org/2001/XMLSchema-instance"xmlns : xsd = "http : //www.w3.조직/2001/된 XMLSchema "> <EmpName> <FIRSTNAME> 빌 </FIRSTNAME > < 성 > 게이츠 </성 > </EmpName > <EmpName> <FIRSTNAME> Subhash </FIRSTNAME > < 성 > 라마 </성 > </EmpName > </ArrayOfEmpName >

+0

Are y 그것을 해결할 수 있습니다. 그렇다면 공유하십시오. 다른 사람에게 도움이 될 수 있습니다. –

관련 문제