我的客户希望接收并发送DateTime Objects我精彩的ServiceStack服务格式为' yyyyMMdd' 。
我想在格式不正确时通知客户。由于像 ParseExact 这样的框架函数抛出FormatException,我想以某种方式捕获它们;
这是我的代码
JsConfig<DateTime>.DeSerializeFn = dt =>
{
if (string.IsNullOrWhiteSpace(dt))
return null;
return DateTime.ParseExact(dt, "yyyyMMdd", CultureInfo.InvariantCulture, DateTimeStyles.None);
};
我认为,在FormatException出现错误的情况下,服务应该继续进行并让服务自由选择或不注意缺失的值;但我想知道是否有办法检测它们。
致以最诚挚的问候,以及快乐的圣日
答案 0 :(得分:1)
刚刚添加了对压缩yyyyMMdd
日期格式的支持,因此ServiceStack的Json Serializer现在可以处理20001213
之类的日期,例如:
var date = "20001213".FromJson<DateTime>(); // new DateTime(2000, 12, 13)
还有一个新的DateTimeSerializer.OnParseErrorFn
,您可以在其中处理无效的日期格式,例如:
DateTimeSerializer.OnParseErrorFn = (str, ex) =>
DateTime.ParseExact(str, "yyMMdd", CultureInfo.InvariantCulture);
var date = "001213".FromJson<DateTime>(); // new DateTime(2000, 12, 13)
这些更改均可从 v4.0.35 + 获得,现在为available on MyGet。