c# – 如何使用ServiceStack.Text导入带有空格的CSV文件

我正在使用ServiceStack.Text库来读取C#中的CSV文件.

我想知道如何将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但它不填充Employee Name和Employee Address,因为它包含标题中的空格.

如果有人能提供帮助,将不胜感激.

最佳答案 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; }
}
点赞