0

シリアル化しようとしているオブジェクトがあります。null になることがあるプロパティが 1 つあります。これが問題を引き起こしています。

問題は、XML メッセージを見てオブジェクトがシリアル化されると、次の行が表示されることです。

<CostAmount d3p1:nil="true" xmlns:d3p1="http://www.w3.org/2001/XMLSchema-instance" />

私が望むのは、タグ CostAmount がメッセージにまったく含まれないようにすることです。

c# xml serialization does not write nullの例を試してみましたが、うまくいきませんでした。

編集

以下は、上記のプロパティです。これは部分クラスであることに注意してください。この部分クラスは自分で作成しました。エンティティ フレームワークは、他の部分クラスを作成しました。エンティティ フレームワークが get & set を自動生成するという問題が発生していることがわかります。

        [XmlElement("dfCostAmount")]
        public Double? CostAmount;
        [XmlIgnore]
        public bool CostAmountSpecified
        {
            get
            {
                return (CostAmount != null & CostAmount.HasValue);
            }
        }
4

1 に答える 1

1

ShouldSerializeパターンに従ってメンバーを実装できます。上記のコードと同様ですが、CostAmountSpecified プロパティの代わりに、メンバー ShouldSerializeCostAmount を実装します。

例:

public bool ShouldSerializeCostAmount()
{
   return CostAmount.HasValue;      
}
于 2013-10-31T14:46:29.183 に答える