如何反序列化Nullable <bool>?</bool>

时间:2012-07-30 07:11:07

标签: c# xml nullable xml-deserialization

我正在尝试从我的XML文件中反序列化Nullable<bool>。我的期望是我的XMLElement中找不到的XMLAttribute是null,如果发现它是truefalse。序列化相同。如果变量不为空,我的变量将被写入。

无论如何,每当我尝试反序列化我的XML时,都会抛出InvalidOperationException

我的班级看起来像这样

[XMLArray("Users")]
public class User
{
    [XMLAttribute("copy")]
    public bool? copy;
}

有什么想法吗?

1 个答案:

答案 0 :(得分:4)

[XMLArray("Users")]
public class User
{
    [XmlIgnore]
    public bool? m_copy;

    [XmlAttribute("copy")]
    public string copy
    {
        get { return (m_copy.HasValue) ? m_copy.ToString() : null; }
        set { m_copy = !string.IsNullOrEmpty(value) ? bool.Parse(value) : default(bool?); }
    }
}

我得到了从answer到sylon链接的帖子的解决方案。非常感谢!