我无法序列化这个东西。如何序列化WCF DataContract中的可空DateTime?
namespace Such.Namespace.Wow
{
[DataContract(Namespace = "http://very.namespace.uh")]
public class DogeResponse
{
[DataMember]
public virtual int Foo { get; set; }
[DataMember]
public virtual DateTime? ExpiringDate { get; set; }
}
}
在生成WSDL:
<xs:complexType name="DogeResponse">
<xs:sequence>
<xs:element minOccurs="0" name="Foo" type="xs:int"/>
<xs:element minOccurs="0" name="ExpiringDate" nillable="true" type="xs:dateTime"/>
</xs:sequence></xs:complexType>
但出现运行时异常并返回为XML错误:
<SerializationException>
<Message>ValueType 'System.DateTime' cannot be null.</Message>
是的,我看到了一个 “类似” 的问题,但它是关于ASMX服务在较老的.NET中。
我想知道如何在.NET 4.5 WCF服务中做到这一点?
抛出这个exeption在哪里?在服务器端还是客户端?你是否首先有一个不可为空的DateTime,并将其更改为可为空的DateTime?那么,你是否也刷新了你的客户端参考? –
先生,看起来你是正确的,它看起来像我没有刷新WCF风暴客户端...谢谢,请将它发布为答案 – evictednoise