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);
}
早上好(在这里)
我正在使用 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);
}