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

mat*_*ias 2 servicestack typelite

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

    public DateTime Created  { get; set; }
Run Code Online (Sandbox Code Playgroud)

使用TypeLITE http://type.litesolutions.net/映射到TypeScript

interface Instance {
   Created: Date;
Run Code Online (Sandbox Code Playgroud)

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

JsConfig.DateHandler = JsonDateHandler.ISO8601;
Run Code Online (Sandbox Code Playgroud)

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

interface Instance {
   Created: string;
Run Code Online (Sandbox Code Playgroud)

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

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

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

Sco*_*ott 6

您需要为以下内容创建一个TypeLITE转换器DateTime:

TypeScript.Definitions()
    .ForLoadedAssemblies()
    .WithConvertor<DateTime>(t => "string")
Run Code Online (Sandbox Code Playgroud)