一千萬個為什麽

搜索

DataMember IsRequired屬性是否與Nullable類型相矛盾?

我今天在WCF合同中遇到了這個問題:

[DataMember(IsRequired = true)]
public DateTime? LastModified { get; set; } 

IsRequired = True 和可空 DateTime 的後果是什麽?他們似乎彼此矛盾。

最佳答案

希望這個類似的矛盾案例能回答你的問題。

與IsRequired的互動

DataMemberAttribute屬性具有IsRequired屬性(   默認為false)。該屬性指示是否為給定的數據成員   在反序列化時,必須存在於序列化數據中。   如果IsRequired設置為true,則表示值必須為   現在)和EmitDefaultValue設置為false(表示   如果設置為默認值,則默認值不得出現   由於結果,無法序列化此數據成員的值   會是矛盾的。如果將此類數據成員設置為其默認值   值(通常為null或0)並嘗試序列化,a   拋出SerializationException。

轉載註明原文: DataMember IsRequired屬性是否與Nullable類型相矛盾?