Десериализовать присутствие элемента XML в bool в C#

Я пытаюсь десериализовать некоторый XML из веб-службы в C# POCO. . У меня это работает для большинства свойств, которые мне нужны, однако мне нужно установить логическое свойство в зависимости от того, присутствует ли элемент или нет, но я не понимаю, как это сделать?

Пример фрагмента XML:

<someThing test="true">
    <someThingElse>1</someThingElse>
    <target/>
</someThing>

Пример класса C#:

[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; }
}

Это очень упрощенный пример реального XML и иерархии объектов, которые я обрабатываю, но он демонстрирует то, чего я пытаюсь достичь.

Все другие вопросы, которые я прочитал, связанные с десериализацией нулевых/пустых элементов, по-видимому, связаны с использованием Nullable, что не делает того, что мне нужно.

Есть у кого идеи?

11
задан James Simm 15 May 2012 в 13:57
поделиться