XML-Serialisierung von enums

Habe ich Probleme mit dem serialisieren enum-Werte.

Hier ist der code:

[System.Xml.Serialization.XmlRootAttribute(Namespace = "", IsNullable = false)]
public class REQUEST
{
    [System.Xml.Serialization.XmlAttributeAttribute()]
    public string ID;

    [System.Xml.Serialization.XmlAttributeAttribute()]
    public REQUESTTypetype Type;
}

public enum REQUESTTypetype
{
    One,
    Two,
    Three,
    Four,
}

...

REQUEST request = new REQUEST();
request.ID = "1234";
request.Type = REQUESTTypetype.One;

XmlDocument doc = new XmlDocument();
MemoryStream ms = new MemoryStream();
StreamWriter sw = new StreamWriter(ms);
XmlSerializer xs = new XmlSerializer(typeof(REQUEST));
xs.Serialize(sw, request_group);
ms.Position = 0;
doc.Load(ms);
TestWriteXml(doc, @"C:\xml_test.xml");

Ist das Ergebnis:

<?xml version="1.0" encoding="utf-8" ?> 
<REQUEST ID="1234" />

Warum die enum wird nicht serialisiert? Ich verwenden .NET Framework 2.0.

Danke.

  • Ich vermute, dass etwas fehlt hier in Ihrem code, Sie werden serialisieren "xs.Serialize(sw, request_group)", aber Sie setzen Sie den Wert für "Anfrage". Was ist die definition von request_group, hat es den Typ festzulegen?
  • es sollte "Anfrage", ändere ich einfach den Namen ein wenig.
  • Was ist der code für dein TestWriteXml Funktion?
  • public static void TestWriteXml(XmlDocument xml, string filename) { FileStream fileStream = new FileStream(filename, FileMode.Create, FileAccess.Write); StreamWriter sw = new StreamWriter(fileStream); sw.WriteLine(xml.InnerXml); sw.Flush(); sw.Close(); }
  • VladV, ich habe versucht, [System.Xml.Serialisierung.XmlElement()] anstelle von [System.Xml.Serialisierung.XmlAttributeAttribute()] aber ohne Ergebnis.
InformationsquelleAutor etarvt | 2010-10-08
Schreibe einen Kommentar