覆盖日期序列化的默认配置时,元数据页面中的JSON示例中将丢失该配置

时间:2015-07-17 19:00:11

标签: servicestack

我试图使用以下代码覆盖默认的DateTime序列化:

JsConfig<DateTime>.SerializeFn = d =>
        {
            return d.ToString("o") + "Z";
        };
JsConfig<DateTime>.RawSerializeFn = d =>
        {
            return d.ToString("o") + "Z";
        };

(不确定SerializeFn和RawSerializeFn之间的差异,所以我试图确保...我也尝试实现DeserializeFn以防它们都需要被覆盖,但看到了一些结果)

无论如何......每当我尝试这个时,我们的DTO中的任何日期成员都会在元数据页面上的示例请求/响应JSON中丢失。 (尽管日期成员仍显示在“参数”部分中)。

我正在使用SS v4.0.40.0

PS:我后来意识到我的整个目标是追加&#34; Z&#34;使用此配置可​​以完成所有DateTime:

        JsConfig.DateHandler = DateHandler.ISO8601;
        JsConfig.AssumeUtc = true;
        JsConfig.AppendUtcOffset = false;

但我仍想提交此错误 - 谢谢!

1 个答案:

答案 0 :(得分:0)

variables = ['[ITEM1]', '[END]', '[ITEM3]', '[END]'] items = ['banana', 'peach', 'apple', 'orange', 'grapes', 'tennis', 'bowling'] 序列化无法单独更改,如果您将序列化转换为不受支持的自定义格式,则还需要使用相应的DateTime配置对其进行反序列化。

您还可以通过注册ParseError回调来处理解析未知RawDeserializeFn/DeserializeFn格式,即:

DateTime

如果您想向任何ServiceStack库提出问题,请升级到最新版本的ServiceStack以确保它仍然是一个问题,如果是,请将其提交给github.com/ServiceStack/Issues,并提供示例代码/失败的测试,以便重现这个问题。