2016-04-25 14 views
1

";"を含むCSVファイルをデシリアライズするためにServiceStack.Textを使用しようとしています。セパレータとして。ServiceStack.TextでCSVを逆シリアル化する

var CsvWithComma = "Col1,Col2" + Environment.NewLine + 
"Val1,Val2" + Environment.NewLine + 
"Val3,Val3" + Environment.NewLine; 

var r1 = ServiceStack.Text.CsvSerializer.DeserializeFromString<List<Line>>(CsvWithComma); 

Assert.That(r1.Count() == 2, "It should be 2 rows"); 
Assert.That(r1[0].Col1 == "Val1", "Expected Val1"); 
Assert.That(r1[0].Col2 == "Val2", "Expected Val2"); 

失敗コード:

ServiceStack.Text.CsvConfig.ItemSeperatorString = ";"; 

var CsvWithSemicolon = "Col1;Col2" + Environment.NewLine + 
"Val1;Val2" + Environment.NewLine + 
"Val3;Val3" + Environment.NewLine; 

var r2 = ServiceStack.Text.CsvSerializer.DeserializeFromString<List<Line>>(CsvWithSemicolon); 

Assert.That(r2.Count() == 2, "It should be 2 rows"); 
Assert.That(r2[0].Col1 == "Val1", "Expected Val1"); 
Assert.That(r2[0].Col2 == "Val2", "Expected Val2"); 

私はServiceStackコードに掘る思われるが

テストCSVは、このデータ

--------------- 
| Col1 | Col2 | 
--------------- 
| Val1 | Val2 | 
--------------- 
| Val3 | Val4 | 
--------------- 

public class Line 
{ 
    public string Col1 { get; set; } 
    public string Col2 { get; set; } 
} 

動作するコードが含まれていますそれはServiceStack.Text.Common.JsWriter.ItemSeperatorをCSVリーダーのセパレーターとして使用していて、ServiではなくceStack.Text.CsvConfig.ItemSeperatorString。

これは誰でもいますか?

答えて

関連する問題