2016-12-06 70 views
4

我正在使用ServiceStack.Text库从C#中的CSV文件读取数据。如何使用带有ServiceStack.Text的标题中的空格导入CSV文件

我想知道如何将CSV反序列化到CSV包含空格分隔标题的对象?

我使用这个代码反序列化的CSV empClass对象:

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

如果我有这样的

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

一个CSV文件,我的课就像是

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

它填充EmpId但它不填充员工姓名员工地址,因为它在标题中包含空格。

将不胜感激,如果任何人都可以提供帮助。

回答

2

POCO类需要匹配其中包含空格的CSV属性名称,用下划线替换它不会使其匹配,您还应该在使用ServiceStack的序列化程序时使用公共属性。

由于属性不能有空格,你可以尝试使用别名,e.g:

[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

相关问题