【发布时间】:2017-03-30 09:52:29
【问题描述】:
我有这样的课:
public class BudgetTransactionRequest
{
[DataMember]
public string transaction_code { get; set; }
[DataMember]
public double? amount { get; set; }
public DateTime request_date { get; set; }
[DataMember(Name = "request_date")]
public string req_date { get; set; }
[OnSerializing]
void OnSerializing(StreamingContext context)
{
this.req_date = this.request_date.ToString("MM/dd/yyyy h:mm tt", CultureInfo.InvariantCulture);
}
[OnDeserialized]
void OnDeserialized(StreamingContext context)
{
DateTime value;
if (DateTime.TryParseExact(this.req_date, "MM/dd/yyyy", CultureInfo.InvariantCulture, DateTimeStyles.None, out value))
{
this.request_date = value;
}
}
}
使用 fiddler,我尝试通过发送如下 JSON 来调用此 Web 服务:
{"transaction_code":"MCN34", "amount":2000.000,"request_date":"/Date(1235764800000)/"}
但我收到以下错误:
{"ErrorDetails":"DateTime is less than minumum value supported by CrmDateTime. Actual value: 01\/01\/0001 00:00:00, Minimum value supported: 01\/01\/1753 00:00:00\"}
我在这里错过了什么?
【问题讨论】:
-
我认为您的问题是您声明了一个名为
request_date的public变量,因此活页夹尝试设置两个属性:request_date和req_date(由于DataMember(Name = "request_date")].出于测试目的,只需将public DateTime request_date { get; set; }更改为public DateTime request_date_test { get; set; }它应该可以正常工作。 -
@Rumpelstinsk:不幸的是,它不起作用。还有其他想法吗?