如何反序列化 Nullable<bool>?

the*_*nut 2 c# xml nullable xml-deserialization

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

无论如何,每次我试图反序列化我的 XML 时,InvalidOperationException都会被抛出。

我的班级看起来像这样

[XMLArray("Users")]
public class User
{
    [XMLAttribute("copy")]
    public bool? copy;
}
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

the*_*nut 5

[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?); }
    }
}
Run Code Online (Sandbox Code Playgroud)

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