服务栈请求日期时间反序列化-如何使其忽略当前区域性

本文关键字:何使其 区域性 请求 日期 时间 反序列化 服务 | 更新日期: 2023-09-27 18:14:44

Servicestack请求日期时间反序列化在我使用丹麦语言/地区的本地机器上工作得很好-但在生产服务器上无法工作,因为它具有英语文化。

如何使其忽略当前文化?

This works local:ourdomain.dk/api/json/回复/LoadGuardBookView吗?日期= 24/07/2014

这适用于生产环境:ourdomain.dk/api/json/回复/LoadGuardBookView吗?日期= 07/24/2014

不同的区域性日期格式。如何使它的工作都与相同的代码?
调用来自javascript,所以我手头没有文化。

编辑1:

var date = $.datepicker.formatDate("d/m/yy", $("#calendar").datepicker("getDate"));
$.get("/api/json/reply/LoadGuardBookView", {
    Date: date
}, function (data) {
    ...
}).fail(function (e) {
   ...
    console.log("Error reloading GuardBook");
});
服务器:

public class GuardBookService : Service, IGet<LoadGuardBookView>
{
    public object Get(LoadGuardBookView request)
    {
        ...
    }
    public class LoadGuardBookView
    {
        public DateTime Date { get; set; } 
    }
}
异常:

{"ResponseStatus":{"错误代码":"SerializationException"、"消息":"可以不要反序列化"*"。LoadGuardBookView请求使用KeyValueDataContractDeserializer:"日期= 24-07-2014"。' nError:"System.Runtime.Serialization.SerializationException:KeyValueDataContractDeserializer:转换类型错误:String was不能识别为有效的日期时间。——>系统。FormatException:字符串未被识别为有效的日期时间。' r ' nSystem.DateTime。解析(字符串s, IFormatProvider;DateTimeStyles样式)'r'n atServiceStack.Text.Common.DateTimeSerializer.ParseShortestXsdDateTime(字符串dateTimeStr) ' r ' nServiceStack.Text.Common.DeserializeBuiltin 1.<GetParseFn>b__b(String value)'r'n at ServiceStack.ServiceModel.Serialization.StringMapTypeDeserializer.PopulateFromMap(Object instance, IDictionary 2 keyValuePairs, List 1 ignoredWarningsOnPropertyNames)'r'n --- End of inner exception stack trace ---'r'n at ServiceStack.ServiceModel.Serialization.StringMapTypeDeserializer.PopulateFromMap(Object instance, IDictionary 2 keyValuePairs, List 1 ignoredWarningsOnPropertyNames)'r'n at ServiceStack.ServiceModel.Serialization.KeyValueDataContractDeserializer.Parse(IDictionarykeyValuePairs, Type(返回类型)'r'n atServiceStack.WebHost.Endpoints.Support.EndpointHandlerBase.DeserializeHttpRequest(类型operationType, IHttpRequest, httpReq, String contentType)'"}}

服务栈请求日期时间反序列化-如何使其忽略当前区域性

我找到了一个既适用于本地又适用于生产的解决方案:

ourdomain.dk/api/json/回复/LoadGuardBookView吗?日期= 2014-07-24

Edit:如注释所述-这是这样做的。(YYYY-MM-DD)