Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 以不同的方式将布尔序列化为XML_C#_Xml_Xml Serialization - Fatal编程技术网

C# 以不同的方式将布尔序列化为XML

C# 以不同的方式将布尔序列化为XML,c#,xml,xml-serialization,C#,Xml,Xml Serialization,我正在使用XmlSerializer将类序列化为XML。该类包含几个布尔属性,它们按如下方式序列化: public bool Boolean1; public bool Boolean2; <Boolean1>true</Boolean1> <Boolean2>false</Boolean2> 公共布尔布尔布尔1; 公共布尔布尔2; 真的 假的 我希望生成的XML如下所示: <Boolean1/> 也就是说,真正的布尔值将显

我正在使用
XmlSerializer
将类序列化为XML。该类包含几个布尔属性,它们按如下方式序列化:

public bool Boolean1;
public bool Boolean2;

<Boolean1>true</Boolean1>
<Boolean2>false</Boolean2>
公共布尔布尔布尔1;
公共布尔布尔2;
真的
假的
我希望生成的XML如下所示:

<Boolean1/>

也就是说,真正的布尔值将显示为空标记,而错误的布尔值将根本不会显示。如果布尔值为false,我可以向两个布尔值添加
ShouldSerializeX
方法以使元素消失,但是如果元素为true,我如何使标记名不包含任何内容呢


另外,是否有某种
[XmlIgnoreIfNull]
[XmlIgnoreIfDefault]
属性会使大多数
应该序列化
方法变得多余?

然后必须根据节点的存在暗示一个值。。。如果有人发送了一些格式不正确的XML,但没有节点,你会说“哦,好吧,这是错误的”,实际上这是错误的答案。不确定这是否对您有影响,但是如果在其中显式地包含true或false对我来说会更舒服。实际上,由于false是默认值,因此如果节点没有出现,我将不得不暗示默认值,如果节点确实出现,则暗示“true”。它一直使用可空类型完成,您根本不希望出现空节点。