c# - type - wpf null 許容 型




DataMemberのIsRequired属性は、null許容型と矛盾していますか? (2)

私は今日WCF契約でこれに遭遇しました:

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

IsRequired = Trueとnull許容型のDateTimeの結果は何ですか? それらは互いに矛盾しているように見えます。


この同様の矛盾する事件があなたの質問に答えてくれることを願っています。

IsRequiredとの相互作用

DataMemberAttribute属性にはIsRequiredプロパティがあります(デフォルトはfalseです)。 このプロパティは、シリアル化されたデータが逆シリアル化されるときに、そのデータメンバーがシリアル化されたデータに存在する必要があるかどうかを示します。 IsRequiredがtrue(値が存在する必要があることを示す)に設定され、EmitDefaultValueがfalse(デフォルト値に設定される場合は値が存在してはならないことを示す)に設定される場合、このデータメンバーのデフォルト値は結果が矛盾するため、シリアル化してください。 そのようなデータメンバがデフォルト値(通常はnullまたはゼロ)に設定されていてシリアル化が試みられると、SerializationExceptionがスローされます。


推測:あなたは 'LastModified'のノードを持っていなければなりません(=必須)が、内容は空でも構いません(=値はnullです)。







isrequired