Typelite:DTO中的日期映射到Date,但实际上是ISO8601字符串

时间:2014-01-25 12:49:49

标签: servicestack typelite

我使用ServiceStack。在我的C#DTO中,我有一个属性

    public DateTime Created  { get; set; }

使用TypeLITE http://type.litesolutions.net/

映射到TypeScript
interface Instance {
   Created: Date;

但是,由于我不想通过API发送JavaScript特定日期格式,因此我使用此ServiceStack设置使用ISO日期

JsConfig.DateHandler = JsonDateHandler.ISO8601;

所以,我在这里不匹配。一种解决方案是改为使用Typescript类

interface Instance {
   Created: string;

并在使用时解析日期。我在哪里调用Date.parse('iso-date-string')?雄心勃勃的解决方案是两次使用TypeScript类,一个使用字符串,另一个使用Date。

为了使TypeLITE生成字符串而不是DateTime的日期,我该怎么办?

课程数量相当少,所以我可以手动修复它们。但是,我的想法是,我将有一个特殊的API调用,客户端可以下载TypeScript声明,然后,一个完整的自动TypeLITE会更好。

1 个答案:

答案 0 :(得分:6)

您需要为DateTime

创建一个TypeLITE转换器
TypeScript.Definitions()
    .ForLoadedAssemblies()
    .WithConvertor<DateTime>(t => "string")