2016-12-06 6 views
4

Я использую библиотеку ServiceStack.Text для чтения из файлов CSV на C#.Как импортировать CSV-файл с пробелом в заголовке с ServiceStack.Text

Я хотел бы знать, как десериализовать CSV для объектов, где CSV содержит разделенный пробел пробела?

Я использую этот код для десериализации CSV для empClass объекта:

List<empClass> objList = File.ReadAllText(filePath).FromCsv<List<empClass>>(); 

Если у меня есть CSV-файл, как этот

EmpId,Employee Name,Employee Address 
12,JohnSmith,123 ABC Street 

и мой класс, как

public class empClass{ 
public string EmpId; 
public string Employee_Name; 
public string Employee_Address; 
} 

Заселяет EmpId, но он не заполняется Имя сотрудника и Сотрудник Адрес, так как он содержит пробел в заголовке.

Будем благодарны, если любой может помочь.

ответ

2

Класс POCO должен соответствовать именам свойств CSV, в которых есть пробелы, заменяя его символом подчеркивания, не делает его совпадающим, вы также должны использовать общедоступные свойства при использовании сериализаторов ServiceStack.

Поскольку свойства не могут иметь места вы можете попробовать использовать псевдоним, например:

[DataContract] 
public class EmpClass 
{ 
    [DataMember] 
    public string EmpId { get; set; } 
    [DataMember(Name="Employee Name")] 
    public string EmployeeName { get; set; } 
    [DataMember(Name="Employee Address")] 
    public string EmployeeAddress { get; set; } 
} 
+0

Спасибо большое. Оно работает. Я использовал публичные свойства, но забыл написать его здесь. – Sugat

Смежные вопросы