[英]How to serialize xml date value to DateTime class in c#
我正在传递以下xml
<PolicyNumber>6456365A1</PolicyNumber>
<EffectiveDate>2015-10-01T00:00:00</EffectiveDate>
<ExpirationDate>2016-10-01T00:00:00</ExpirationDate>
通过小提琴手课上课。但以下课中的价值观
[DataContract]
public class Parameter
{
[DataMember]
public string PolicyNumber { get; set; }
[DataMember]
public DateTime EffectiveDate { get; set; }
[DataMember]
public DateTime ExpirationDate { get; set; }
}
策略编号的值按预期方式传递。DateTime的值未传递,而是具有其默认值。 我正在使用提琴手将其发布到Web api mvc。
您可以简单地将其设为仅用于序列化的私有成员。
[DataContract]
public class AutoIDCardParameter
{
[DataMember(Name = "PolicyNumber")]
public string PolicyNumber;
[DataMember(Name = "EffectiveDate")]
private string _EffectiveDate {
get {
return EffectiveDate.ToString("yyyy-MM-DDTHH:mm:ss");
}
set {
DateTime.TryParse(value, out EffectiveDate);
}
}
public DateTime EffectiveDate;
// ....
}
这里的顺序是错误的。 除非您另外指定(请参阅docs ),否则DataContractSerializer
将使用字母顺序,因此,它期望的是EffectiveDate
, ExpirationDate
,然后是PolicyNumber
。
您需要将XML重新排列为该顺序,或者需要通过属性在类上指定顺序:
[DataContract]
public class Parameter
{
[DataMember(Order = 0)]
public string PolicyNumber { get; set; }
[DataMember(Order = 1)]
public DateTime EffectiveDate { get; set; }
[DataMember(Order = 2)]
public DateTime ExpirationDate { get; set; }
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.