0

オブジェクトの束からxmlを作成するために、linq to xml機能構築を使用しようとしています:

new XAttribute("duration", (m.Media.Type.HasValue && m.Media.Type.Value == MediaType.Image) ? m.DurationInSeconds : default(int?)),

コードの問題は、メディア タイプに値がない場合、またはメディア タイプが画像でない場合、おそらく default(int?) を使用したために例外が発生することです。

理想的には、メディア タイプが存在しない場合、またはメディアがイメージでない場合、ノードの「null」を置き換えたいと考えています。しかし、方法がわかりませんでした。

何か案は?

4

1 に答える 1

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")
    );

この結果<root duration="null" />または<root duration="23" />typeID == 1 の場合

于 2012-07-19T13:35:35.970 に答える