DataMember IsRequired属性是否与Nullable类型相矛盾?

Reb*_*cca 15 .net c# wcf datamember isrequired

我今天在WCF合同中遇到过这个问题:

[DataMember(IsRequired = true)]
public DateTime? LastModified { get; set; } 
Run Code Online (Sandbox Code Playgroud)

可以IsRequired = True和可空的后果是什么DateTime?他们似乎彼此矛盾.

Cha*_*thJ 9

希望这个类似的矛盾案例能回答你的问题.

与IsRequired的互动

DataMemberAttribute属性具有IsRequired属性(默认值为false).该属性指示在序列化数据被反序列化时是否必须存在给定数据成员.如果IsRequired设置为true(表示必须存在值)并且EmitDefaultValue设置为false(表示如果将值设置为其默认值,则该值不得出现),此数据成员的默认值不能为序列化因为结果会相互矛盾.如果将此类数据成员设置为其默认值(通常为null或0)并尝试进行序列化,则抛出SerializationException.