如何使用 ServiceStack.Text 在标题中导入带有空格的 CSV 文件

Sug*_*gat 6 c# csv servicestack

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

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

我正在使用此代码将 CSV 反序列化为 empClass对象:

  List<empClass> objList = File.ReadAllText(filePath).FromCsv<List<empClass>>();
Run Code Online (Sandbox Code Playgroud)

如果我有这样的 csv 文件

EmpId,Employee Name,Employee Address 
12,JohnSmith,123 ABC Street
Run Code Online (Sandbox Code Playgroud)

我的课就像

public class empClass{
public string EmpId;
public string Employee_Name;
public string Employee_Address;
}
Run Code Online (Sandbox Code Playgroud)

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

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

myt*_*thz 6

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; }
}
Run Code Online (Sandbox Code Playgroud)