我有一个带有可选标签的XML,如下所示:
<Config>
<MyTag>true<MyTag>
<!-- more tags -->
</Config>
和班级定义:
public class config {
[System.Xml.Serialization.XmlElement("CheckForCompleteTransform")]
public bool? CheckForCompleteTransform { get; set; }
}
如果我将标记设置为我在上面的示例-XML中提供的标记,或者我完全省略它,则此方法有效。但是如果我将标签提供为<MyTag/>
怎么办?如果使用这种表示法,我希望序列化程序将我的类中的相应属性设置为true,但是我想要一个
System.FormatException:字符串文字&#39;&#39;对于类型无效 布尔
关于如何实现这一目标的任何想法?
答案 0 :(得分:1)
我自己没有验证过这个问题,但您是否尝试过添加
[XmlElement(IsNullable = true)]
属于CheckForCompleteTransform?
编辑:
好的,和
一起怎么样DefaultValueAttribute(true);
答案 1 :(得分:1)
选中此here
你可以在你的班级中使用 [XmlElement(&#34; CheckForCompleteTransform&#34;,IsNullable = true)] CheckForCompleteTransform属性
public class config
{
[XmlElement("CheckForCompleteTransform", IsNullable = true)]
public bool? CheckForCompleteTransform { get; set; }
}
并将 xsi:nil =&#34; true&#34; 属性添加到CheckForCompleteTransform标记中
<CheckForCompleteTransform xsi:nil="true" />