Web APIと通信するために、XMLにシリアライズされ、APIに送信されるいくつかのクラスを作成しました。 APIは、デフォルト以外の値を持つプロパティのみを保持する場合にのみ、これらのXMLを受け入れます。値に基づいて直列化からプロパティを除外する方法は?
シリアル化中にプロパティを削除するにはどうすればよいですか? (簡略化した例)次のように
私はクラスがあると仮定:
[XmlRoot("SomeData")]
public class SomeData
{
[XmlElement("rangeX")]
public int RangeX { get; set; }
[XmlElement("rangeY")]
public int RangeY { get; set; }
[XmlElement("rangeZ")]
public int RangeZ { get; set; }
}
RangeXとRangeYための非デフォルト値を持つオブジェクトは、このようのみrangeXタグを保持しているXMLにシリアル化する必要があるとrangeY。
null値を取り除く方法を見つけましたが、これは私が望むものではありません。デフォルト値はnullと非常に異なる場合があります。
ありがとうございます!
これでLINQを試してみてください。たとえば、シリアル化する前に、 'var newSomeData = existingSomeData.Select(x => x);'のようなものです。 –
@ KraangPrimeでは、そのように_property_を除外できますか? –
@ C.Evenhuis - 同じメソッドを使用して、プロパティを持たない新しいクラスに '変換'する場合は、そうです。あなたの解決策はかなりセクシーなものです –