Próbuję deserializować niektóre XML z usługi sieci Web do C# POCO. Mam to działa dla większości właściwości, których potrzebuję, jednak muszę ustawić właściwość bool na podstawie tego, czy element jest obecny, czy nie, ale nie może zobaczyć, jak to zrobić?Deserializować obecność elementów XML w celu Bool w C#
urywek przykład XML:
<someThing test="true">
<someThingElse>1</someThingElse>
<target/>
</someThing>
Przykładem C# klasa:
[Serializable, XmlRoot("someThing")]
public class Something
{
[XmlAttribute("test")]
public bool Test { get; set; }
[XmlElement("someThingElse")]
public int Else { get; set; }
/// <summary>
/// <c>true</c> if target element is present,
/// otherwise, <c>false</c>.
/// </summary>
[XmlElement("target")]
public bool Target { get; set; }
}
To bardzo uproszczony przykład rzeczywistej hierarchii XML i obiektów Jestem przetwarzania, ale pokazuje, co ja Próbuję osiągnąć.
Wszystkie inne pytania, które przeczytałem, dotyczące deserializacji pustych elementów, wydają się wymagać użycia Nullable<T>
, która nie spełnia moich oczekiwań.
Czy ktoś ma jakieś pomysły?
Dzięki, przemilczaliśmy to :) –