私は今日、WCF契約でこれに遭遇しました:
[DataMember(IsRequired = true)]
public DateTime? LastModified { get; set; }
IsRequired = True
とnull許容の結果は何DateTime
ですか?それらは互いに矛盾しているように見えます。
私は今日、WCF契約でこれに遭遇しました:
[DataMember(IsRequired = true)]
public DateTime? LastModified { get; set; }
IsRequired = True
とnull許容の結果は何DateTime
ですか?それらは互いに矛盾しているように見えます。
nullで初期化し、ユーザーが有効な日付を設定できるようにする場合は、意味があります。したがって、送信する前に、ユーザー入力を検証できます。
これがあなたの質問に答えるかもしれない同様の矛盾です。
DataMemberAttribute属性にはIsRequiredプロパティがあります(デフォルトはfalseです)。このプロパティは、特定のデータメンバーが、逆シリアル化されるときにシリアル化されたデータに存在する必要があるかどうかを示します。IsRequiredがtrueに設定され(値が存在する必要があることを示します)、EmitDefaultValueがfalseに設定されている場合(デフォルト値に設定されている場合は値が存在してはならないことを示します)、このデータメンバーのデフォルト値は結果が矛盾するため、シリアル化されました。このようなデータメンバーがデフォルト値(通常はnullまたはゼロ)に設定されていて、シリアル化が試行されると、SerializationExceptionがスローされます。
推測:「LastModified」(=必須)のノードが必要ですが、内容は空(=値はnull)にすることができます。