XML Schema Part 2指定定义为boolean的数据类型的实例可以具有以下合法文字{true,false,1,0}.例如,在反序列化时,以下XML将布尔属性"Emulate"设置为true
.
1
但是,当我将对象序列化回XML时,我得到的true
不是数值.我的问题是,有没有办法可以控制XML中的布尔表示?
你也可以使用一些XmlSerializer属性black magic来做到这一点:
[XmlIgnore] public bool MyValue { get; set; } ///Get a value purely for serialization purposes [XmlElement("MyValue")] public string MyValueSerialize { get { return this.MyValue ? "1" : "0"; } set { this.MyValue = XmlConvert.ToBoolean(value); } }
如果你被冒犯了,你还可以使用其他属性来隐藏智能感知中的这个成员!它不是一个完美的解决方案,但它可以比实现IXmlSerializable更快.