2011-09-25 7 views
1

에 사용자 지정 컬렉션을 덤프하는 간단한 방법은 내가 데이터로로드하고 데이터 그리드에 바인딩 된 List<DevicePatchInfo>이 클래스C 번호 : csv 파일

public class DevicePatchInfo 
{ 
    public string HostName { get; set; } 
    public string PatchName { get; set; } 
    public bool IsPresent { get; set; } 
} 

있습니다. 버튼을 눌러서 이것을 csv 파일로 직렬화하려고합니다.

  1. 생성자에서 CSV 경로 StreamWriter를 만들기 :

    수행하는 가장 확실한 방법은이다.

  2. 리플렉션을 통해 DevicePatchInfo 클래스의 모든 속성 이름을 읽고이를 csv 파일의 첫 번째 행으로 작성합니다.
  3. 목록에서 foreach를 사용하여 열거하십시오.
  4. 목록의 각 항목을 읽고 모든 항목 값을 쉼표로 구분하여 string.format을 만듭니다.
  5. stream.write 새 문자열
  6. 모두 완료되면 스트림 작성자를 삭제하십시오.

Huf! 이 간단한 해결책이 있습니까? 또는이 대신 코드를 입력해야합니다.

+0

절대적으로 CSV 여야합니까? 당신은 단순히 국가를 구하기 위해 노력하고 있습니까? 그렇다면 XML Serilaization을 살펴보십시오. http://support.microsoft.com/kb/815813 – David

+0

@DavidStratton 예, 불행히도보고를위한 CSV 여야하며 가져 오기 목적을 능가합니다. – Raghu

답변

3

오픈 소스 FileHelpers library을 사용하십시오.

+1

실례합니다, @ 실례합니다! 당신은 항상 좋은 대답을 가지고 있습니다! 주위에 어떤 점수를 얻는 것이 어렵습니다! +1. – David

1

제안 된 솔루션은 얻을 수있는 금속에 거의 가깝습니다. 필자가 작성한 클래스 인 DevicePatchInfo이 잘 정의되어 있으므로 리플렉션을 사용하는 대신 헤더를 하드 코딩하는 것이 좋습니다.