我正在尝试使用linq to xml功能构造从一堆对象创建xml:
new XAttribute("duration", (m.Media.Type.HasValue && m.Media.Type.Value == MediaType.Image) ? m.DurationInSeconds : default(int?)),
代码的问题是,如果媒体类型没有值或媒体类型不是图像,我会得到一个异常,这可能是因为我使用了default(int?)。
理想情况下,如果媒体类型不存在或媒体不是图像,我想在节点中替换“null”。但无法弄清楚如何。
有什么想法吗?
答案 0 :(得分:0)
是否要将字符串“null”作为属性值?
如果是,我会使用以下代码:
int? typeID = null;
int duration = 23;
var xml = new XElement("root",
new XAttribute("duration", ((typeID.HasValue && typeID.Value == 1) ? duration.ToString() : null) ?? "null")
);
如果typeID == 1
,则结果为<root duration="null" />
或<root duration="23" />