使用 Servicestack CsvSerializer 时无法正确映射时间跨度类型
Timespan type cannot be mapped correctly when using Servicestack CsvSerializer
我正在尝试通过 Servicestack 的 SerializeToCsv 方法将对象列表转换为逗号分隔的字符串。但是,我意识到时间跨度无法正确转换。例如,我的时间跨度值为 19:00:00,但它转换为 PT19H。你可以看到下面的代码。我可以通过添加字符串 属性 将时间跨度转换为字符串,并在运行时在对象中将时间跨度更改为字符串,但是我认为在 Servicestack 中会有更好的方法并且在互联网上找不到任何东西。提前致谢!
public string Convert()
{
var data = _table.Get();
CsvSerializer.UseEncoding = PclExport.Instance.GetUTF8Encoding(true);
var csvStr = CsvSerializer.SerializeToCsv(data);
return csvStr;
}
这是 TimeSpan 的默认序列化,它使用 XSD duration format,例如19 小时 = PT19H
,即 19 小时的周期。
您可以更改序列化格式:
JsConfig.TimeSpanHandler = TimeSpanHandler.StandardFormat;
我正在尝试通过 Servicestack 的 SerializeToCsv 方法将对象列表转换为逗号分隔的字符串。但是,我意识到时间跨度无法正确转换。例如,我的时间跨度值为 19:00:00,但它转换为 PT19H。你可以看到下面的代码。我可以通过添加字符串 属性 将时间跨度转换为字符串,并在运行时在对象中将时间跨度更改为字符串,但是我认为在 Servicestack 中会有更好的方法并且在互联网上找不到任何东西。提前致谢!
public string Convert()
{
var data = _table.Get();
CsvSerializer.UseEncoding = PclExport.Instance.GetUTF8Encoding(true);
var csvStr = CsvSerializer.SerializeToCsv(data);
return csvStr;
}
这是 TimeSpan 的默认序列化,它使用 XSD duration format,例如19 小时 = PT19H
,即 19 小时的周期。
您可以更改序列化格式:
JsConfig.TimeSpanHandler = TimeSpanHandler.StandardFormat;