我的班级
public MyClass
{
[DataMemberAttribute(EmitDefaultValue = true)]
public decimal? a { get; set; }
[DataMemberAttribute(EmitDefaultValue = true)]
public DateTime? b { get; set; }
[DataMemberAttribute(EmitDefaultValue = true)]
public int? c { get; set; }
[DataMemberAttribute(EmitDefaultValue = true)]
public bool? d { get; set; }
}
Decimal,DateTime和int可以为空。所以我有:
<MyClass ...>
<a>3</a>
<b i:nil="true"/>
<c i:nil="true"/>
<d i:nil="true"/>
</MyClass>
当a,b,c为null时,我想得到这个:
<MyClass ...>
<a>3</a>
<b/>
<c/>
<d/>
</MyClass>
答案 0 :(得分:0)
你只需要为你想要的每个元素创建如下属性:
3n+1
答案 1 :(得分:0)
我最后这样做了:
XmlSerializer.SerializeToWriter(data, strw);
XDocument xdoc = XDocument.Load("myxmlfile.xml");
foreach (var attribute in xdoc.Descendants())
{
if (attribute.FirstAttribute != null && attribute.FirstAttribute.ToString().Contains("i:nil"))
attribute.FirstAttribute.Remove();
}
xdoc.Save("myxmlfile.xml");
在我班上我有
[DataMemberAttribute(EmitDefaultValue = true)]
因此,当它为空时,它会生成&#39; i:nil =&#34; true&#34;&#39;,然后我只需删除它。