17

シリアライズしている単純なクラスがあります。

 [DataContract(Name = "Test", Namespace = "")]
 public class Test
 {
    [DataMember(Order = 0, Name = "Text")]
    public string Text { get; set; }

    public Test() {}
 }

これにより、次の XML が除外されます。

<Test>
   <Text>Text here</Text>
</Test>

私が欲しいのは:

<Test>
   <Text type="MyType">Text here</Text>
</Test>

XML 要素に属性を追加するにはどうすればよいですか?

前もって感謝します。

4

4 に答える 4

15

DataContractに属性を追加することはできません。ISerializableを実装するクラスを使用するか、.NetXmlSerializerを使用する必要があります。

于 2009-10-29T14:14:46.210 に答える
2

正確な答えではありませんが、IXmlSerializable を実装して出力 xml 形式を完全に制御できます。

于 2009-10-29T14:12:04.687 に答える
-3

[XMLAttribute] で type 属性を追加し、[XmlText] で要素の値を追加します。

public class Test
{
    public text Text;

    public Test()
    {
        Text = new text();
    }

    [DataContract(Name = "Test", Namespace = "")]
    public class text
    {
        [XmlText]
        public string Text { get; set; }
        [XmlAttribute]
        public string type { get; set; }
    }
}
于 2014-03-17T14:58:31.557 に答える