NancyFx 绑​​定 TimeSpan 不工作 json

NancyFx bind TimeSpan is not Working json

早上好(在这里)

我正在使用 NancyFx,当我尝试将 class 与 TimeSpan 属性绑定时遇到问题,我也在使用 AngularJs

我使用的

a json 是:

{ "description": "foo",
"scheduleTime": { "days": 0, "hours": 23, "minutes": 36, "seconds": 10, "milliseconds": 0 } };

我的 C#Class

public class Scheduler
{
    public int IDHorario{ get; set; }
    public string Descripcion { get; set; }
    public Nullable<TimeSpan> scheduleTime{ get; set; }
}

我的南希模块

Post["/Add"] = parameters =>
{
    var sch= this.Bind<Scheduler>();

    HorarioDB.CreateHorario(sch);

    return new Response().WithStatusCode(HttpStatusCode.OK);
};

但我收到的 scheduleTime 为空,我不知道为什么?? :'(

有什么想法吗??

非常感谢

查看 source code,TimeSpan json 转换器仅处理 TimeSpan,而不处理可为 null 的 TimeSpan。

您可以为 Nancy 提出问题,或者提供修复更好 - 这是一个开源项目,欢迎提出意见。

目前,请考虑在您的 class 上使用不可为 null 的 属性。

或者,创建您自己的 JavaScriptConverter 并注册它。查看 TimeSpan converter was born 的实现细节。您可以重用现有的,只需验证是否有传入数据即可。类似于:

public override IEnumreable<Type> SupportedTypes
{
   get
   {
      return new[]{typeof(Nullable<TimeSpan>)};
}
public override object Deserialize(IDictionary<string, object> dictionary, Type type, JavaScriptSerializer serializer)
{
   if (dictionary.Count == 0)
   {
      return null;
   }
   return new TimeSpanConverter().Deserialize(dictionary, type, serializer);
}