gpt4 book ai didi

.net - 控制 .NET WCF 服务请求的日期格式

转载 作者:行者123 更新时间:2023-12-03 21:33:14 27 4
gpt4 key购买 nike

我正在尝试使用 WCF 从 .NET 3.5 调用 Web 服务。我目前得到的错误是

An unsecured or incorrectly secured fault was received from the other party. See the inner FaultException for the fault code and detail.

InnerException: {"Value -2147483648 for millisOfSecond must be in the range [0,999]"}


我已将其范围缩小到要发送的两个日期值。当我通过soapUI创建请求并以这种格式发送日期值时:

2010-07-19T00:00:00.000Z


一切正常,但是当我从 .NET 调用服务时,它以这种格式发送日期

2010-07-19T00:00:00


并导致上述错误。如果我在soapUI 中发送了错误的日期,我会收到相同的错误消息。请注意,这些日期是必填字段,因此如果我不发送任何内容,则会将默认日期 0001-01-01T00:00:00 放入其中,这显然仍然是错误的格式。
如何控制将日期发送到 Web 服务的方式?

最佳答案

不确定是否有更简单的方法(还没有找到它,如果它存在) - 但这样做的一种方法是引入一个正确格式化日期的字符串字段,然后避免直接序列化日期字段,而是序列化格式化的字符串:

public partial class YourDataClass
{

public DateTime YourDate { get; set; }

[DataMember(Name="YourDate")]
public string FormattedDate
{
get { return string.Format("{0:yyyy-MM-ddTHH:mm:ss.fffZ}", YourDate);
set { ; }
}
}

有了这个, DateTime领域 YourDate不会被序列化(没有 [DataMember] 属性 - 假设您在 WCF 中使用 DataContract 序列化程序),而格式化的日期字符串将被序列化为 YourDate以正确的格式。

关于.net - 控制 .NET WCF 服务请求的日期格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3951433/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com