2009-04-28 3 views
29

Jestem nowy w Serializacji XML przy użyciu .NET i po pracy z nim od jakiegoś czasu jestem teraz całkiem zaintrygowany. Mogę serializacji elementy z atrybutami zawierające inne elementy, ale w jaki sposób można szeregować coś podobnegoPytanie serializacji XML - jak serializować element, atrybut i tekst z jednego obiektu

<myElement name="foo">bar</myElement> 

używam klasy dla myelement z XmlAttribute dla „nazwa”, ale w jaki sposób przekazać wartość elementu XML?

Z góry dziękuję.

Odpowiedz

69

[XmlText], tak:

using System; 
using System.Xml.Serialization; 
[Serializable, XmlRoot("myElement")] 
public class MyType { 
    [XmlAttribute("name")] 
    public string Name {get;set;} 

    [XmlText] 
    public string Text {get;set;} 
} 
static class Program { 
    static void Main() { 
     new XmlSerializer(typeof(MyType)).Serialize(Console.Out, 
      new MyType { Name = "foo", Text = "bar" }); 
    } 
} 
+0

Wielkie dzięki, po prostu nie znaleźć tego xmlText :) –

+1

dziękuję. To rozwiązało mój problem –

+1

6 lat później i to właśnie rozwiązało mój problem :). Dzięki Marc! – DVM