asp.net-mvc – delphi web服务从.net mvc应用程序获取不同的日期时间
|
我知道大多数人建议的解决方案是将我的对象的属性从TDateTime更改为String,但我无法访问Web服务应用程序的所有源代码,因此有些情况下我无法做到这一点.所以我宁愿确保我处理这个问题. 简而言之,我有一个.NET MVC应用程序,它调用Delphi 2005编写的服务应用程序的Web方法来获取约会对象,包括开始日期/时间和结束日期/时间.用户可以更改约会,然后MVC应用程序调用另一个Web方法,传入修改的约会对象,以便服务应用程序存储. TAppointemnt的StartTime和EndTime属性在Delphi中定义为TDateTime.它们在WSDL中显示为xs:dateTime. Visual Studio在Reference.cs中将它们创建为System.DateTime. 通过在Delphi中使用Web App Debugger,并将MVC应用程序的端点设置为Web服务EXE,我可以实时浏览这两个应用程序.我所看到的是,当从Web服务传递到.NET MVC时,发送和接收的约会对象的StartTime和EndTime属性是相同的,但是当从.NET MVC传递到Delphi时,时间调整了13个小时网络服务. 虽然我理解.NET会进行一些内部时区调整,但只有当客户端和服务器位于不同的时区时才会显而易见.就我而言,客户端浏览器,.NET MVC应用程序和Delphi服务应用程序都在同一个应用程序中.事实上,它们都在同一台机器上运行,所以我不知道为什么会出现差异. 看起来他们用不同的方式用XML编码日期时间…… 从Delphi服务应用程序到.NET MVC应用程序的响应: <StartTime xsi:type="xsd:dateTime">2012-10-29T08:00:00.000+13:00</StartTime><EndTime xsi:type="xsd:dateTime">2012-10-29T09:15:00.000+13:00</EndTime> 从.NET MVC应用程序到Delphi服务应用程序的POST: <StartTime xsi:type="xsd:dateTime">2012-10-29T08:00:00</StartTime><EndTime xsi:type="xsd:dateTime">2012-10-29T09:15:00</EndTime> 解决方法我发现了一个适合我的解决方案.在我的模型中,我处理对约会的更新,我传递了由视图组件生成的约会对象,该对象不包括所有属性.只有那些观点.要完成约会,我从服务应用程序获取未更改的版本,并根据新对象修改其属性. 我在调试时发现,从服务应用程序检索到的wsAppointment的StartTime和EndTime属性具有DateTimeKind为Local,而pAppointment参数的StartTime和EndTime设置为Unspecified.因此,我传回服务应用程序的Local DateTimeKind被Unspecified覆盖. 为了解决这个问题,我使用DateTime.SpecifyKind来显式设置Kind属性,如下所示: wsAppointment.StartTime = DateTime.SpecifyKind(pAppointment.StartTime,DateTimeKind.Local); wsAppointment.EndTime = DateTime.SpecifyKind(pAppointment.EndTime,DateTimeKind.Local); 希望这可以帮助遇到相同或类似问题的其他人. (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-mvc – 使用自定义值呈现Html.Hidden帮助器
- asp.net-mvc – Asp.net 5(vnext)是否可以使用?
- asp.net-mvc – 防止用户没有确认的电子邮件登录ASP.NET MV
- asp.net-mvc – 是否有任何基于ASP.NET MVC订阅的入门工具包
- asp.net-mvc – 如何创建ASP.NET MVC区域作为插件DLL?
- asp.net – 如何将SQL用户定义的函数添加到实体框架?
- asp.net-mvc-4 – 在MVC中的App_Start()文件夹中使用AuthCo
- asp.net-mvc – 如果我在单个页面中添加多个表单,是否需要在
- asp.net文件上传功能(单文件,多文件,自定义生成缩略图,水印
- asp.net-mvc – 奇怪的错误w / NinjectValidatorFactory更新
- 具有匹配客户端和服务器端标记的ASP.NET页面的选
- asp.net-mvc-3 – 带有asp.net mvc 3的$ajax内的
- 悟透JavaScript
- asp.net-mvc – WebApi Action过滤器调用两次
- asp.net-mvc – Url.Action生成查询字符串,以任何
- asp.net-mvc – ASP.net MVC自定义路由处理程序/
- asp.net-core – 如何为asp.net vnext使用不同的
- asp.net-mvc – 在ASP.NET MVC 4中的用户控制等效
- asp.net-mvc – ViewModel中的MVC3 RouteUrl
- asp.net-mvc – 在MVC中的业务规则
