首页 > 解决方案 > ServiceStack.Text:包含双引号的 csv 文件的问题

问题描述

我正在使用 ServiceStack.Text 库(V.5.8.0)并在使用它时遇到问题:

数据类(C#):

[DataContract]
public class Item
{
    [DataMember(Name = "id")]
    public String PartID { get; set; }

    [DataMember(Name = "price")]
    public String Price { get; set; }
}

节目类:

class Program
{
    static void Main(string[] args)
    {
        CsvConfig.ItemSeperatorString = ";";
        List<Item> Items = File.ReadAllText("/my/datafile.csv").FromCsv<List<Item>>();
        Debug.Print(Items.Dump());
    }
}

.csv 文件:

id;price;foo
1;2"
1;2"

运行 MWE 时,控制台输出为:

[
    {
        id: 1,
        price: "2""
1"
    }
]

恕我直言,这很奇怪。

我稍微修改了 csv 文件:

id;price
1;2"
1;2"

事情变得更糟了,现在ArgumentOutOfRangeException抛出异常。

这是预期的行为吗?

标签: c#csvquotesservicestack-text

解决方案


推荐阅读