【发布时间】:2020-02-06 15:50:47
【问题描述】:
我有一个代表足球运动员的类:
public class PlayerExtended
{
[XmlAttribute("id")] public string Id { get; set; }
[XmlAttribute("shortName")] public string ShortName { get; set; }
[XmlAttribute("firstName")] public string FirstName { get; set; }
[XmlAttribute("surName")] public string SurName { get; set; }
[XmlAttribute("shirtNumber")] public string ShirtNumber { get; set; }
[XmlAttribute("actions")] public string Actions { get; set; }
[XmlAttribute("substitude")] public string Substitude { get; set; }
[XmlAttribute("grade")] public string Grade { get; set; }
[XmlAttribute("iconSmall")] public string IconSmall { get; set; }
[XmlAttribute("position")] public string Position { get; set; }
[XmlAttribute("squadPositionID")] public string SquadPositionId { get; set; }
[XmlAttribute("squadPosition")] public string SquadPosition { get; set; }
[XmlAttribute("inMinute")] public string InMinute { get; set; }
[XmlAttribute("outMinute")] public string OutMinute { get; set; }
[XmlAttribute("captain")] public string Captain { get; set; }
}
在为属性赋值后,其中一个玩家看起来像这样:
如果我序列化它,它看起来像这样:
<player id="51641" shortName="Bürki" firstName="Roman" surName="Bürki" shirtNumber="1" substitude="starter" grade="2,5" iconSmall="xxx.whatever.com" position="11" squadPositionID="1" squadPosition="Torwart"/>
但我希望它看起来像这样:
<player id="51641" shortName="Bürki" firstName="Roman" surName="Bürki" shirtNumber="1" actions="" substitude="starter" grade="2,5" iconSmall="xxx.whatever.com" position="11" squadPositionID="1" squadPosition="Torwart"/>
那么如何序列化一个空字符串的 XmlAttribute 呢?
【问题讨论】:
-
您是否已经尝试使用
[System.Xml.Serialization.XmlElement(IsNullable = true)]属性而不是 XmlAttribute ?成功了吗? -
是的,它“有效”......但它看起来像这样:
-
-
@ManojChoudhari XmlElement 与 XmlAttribute 不同,这不起作用
-
无法复制。给定
var player = new PlayerExtended { Id = "51641", Actions = "", };,我得到的XML 是<PlayerExtended id="51641" actions="" />。请参阅:dotnetfiddle.net/mfWs4i 您能否在edit 您的问题中包含一个minimal reproducible example,以显示您是如何生成 XML 的?
标签: c# xml string serialization xml-attribute