2017-12-02 19 views
2

업로드 양식에서 보낸 CSV 파일을 읽고 Poco로 변환하려고합니다. 내가 var content에 휴식 경우CSV를 Poco로 변환 할 수 없습니다.

foreach (var uf in Request.Files.Where(f => f.ContentLength > 0)) 
{ 
    var content = new StreamReader(uf.InputStream).ReadToEnd(); 
    var orders = content.FromCsv<List<MyOrder>>(); 
} 

:

여기
public class MyOrder 
{ 
    public string TrackingID { get; set; } 
    public string CarrierName { get; set; } 
    public string ConNo { get; set; } 
    public string import_id { get; set; } 
    public string EnteredDate { get; set; } 
    public string CustomerRef { get; set; } 
    public string ConDescription { get; set; } 
    public string TransferAcCode { get; set; } 
    public string AccountNo { get; set; } 
    public string AccountName { get; set; } 
} 

내가 내 서비스에서 파일 내용을 얻을 방법은 다음과 같습니다

여기
"30247685204","PWITA1","114000/2017/SE","","27/11/2017","1027/00","","","ZZPWI1","INTER MEMBER1", 
"30247685205","PWITA2","114000/2017/SE","","27/11/2017","1027/00","","","ZZPWI2","INTER MEMBER2" 

내 포코입니다 : 여기 내 테스트 파일입니다 파일 내용을 다음과 같이 얻을 수 있습니다.

"\"30247685204\",\"PWITA1\",\"114000/2017/SE\",\"\",\"27/11/2017\",\"1027/00\",\"\",\"\",\"ZZPWI1\",\"INTER MEMBER1\",\r\n\"30247685205\",\"PWITA2\",\"114000/2017/SE\",\"\",\"27/11/2017\",\"1027/00\",\"\",\"\",\"ZZPWI2\",\"INTER MEMBER2\"\r\n" 

문제는 내 Poco 주문의 올바른 목록을 var orders에 가져올 수 없다는 것입니다. 나는 하나의 요소 (두 개가있는 파일에서)를 얻었고 그것은 비어 있습니다 ... 모든 속성은 null으로 설정되었습니다! 저는 항상 JSON 객체를 처리하고 과거에는 문제가 없었습니다. 이것은 CSV 파일을 읽는 첫 번째 시도이며 잘못된 부분을 이해할 수 없습니다!

답변

2

당신은, 헤더로 CSV의 첫 번째 행을 치료하기 위해 지정할 수 있습니다 :

var orders = CsvSerializer.DeserializeFromStream<List<MyOrder>>(uf.InputStream); 
:

이 바람직 정적 설정이 당신의 AppHost Configure()에 한 번 설정해야합니다
CsvConfig<MyOrder>.OmitHeaders = true; 

, 다음으로 직렬화 할 수 있습니다

+0

대단히 신화 감사합니다! 모든 것이 지금 당장 작동합니다! – wizzy