簡體   English   中英

XML ENUM 的序列化為空

[英]XML Serialization of an ENUM is empty

這是由 XSD 生成的枚舉

[System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "2.0.50727.42")]
[System.SerializableAttribute()]
[System.Xml.Serialization.XmlTypeAttribute(Namespace="http://tempuri.org/Utenza.xsd")]
public enum MeterType {

    /// <remarks/>
    [System.Xml.Serialization.XmlEnumAttribute("a diffalco")]
    adiffalco,

    /// <remarks/>
    [System.Xml.Serialization.XmlEnumAttribute("con diffalco")]
    condiffalco,

    /// <remarks/>
    [System.Xml.Serialization.XmlEnumAttribute("di riserva")]
    diriserva,
}

和..這是我用來序列化的代碼

String XmlString = null;
MemoryStream memoryStream = new MemoryStream();
XmlSerializer xs = new XmlSerializer(Tipo);

XmlTextWriter xmlTextWriter = new XmlTextWriter(memoryStream, Encoding.UTF8);
xs.Serialize(xmlTextWriter, pObject);           
memoryStream = (MemoryStream)xmlTextWriter.BaseStream;
XmlString = UTF8ByteArrayToString(memoryStream.ToArray());

XML output 不包含表示枚舉值的屬性。 有人可以幫忙嗎? 非常感謝。

您的問題幫助我解決了將近 10 年后我遇到的枚舉問題。 你現在應該已經知道答案了。 您需要有一個 NULL 的枚舉值,這將是枚舉 (0) 中的第一個值。 然后使用:

[System.Xml.Serialization.XmlEnumAttribute("")] 

作為用於“Null”枚舉值的屬性。 當 XmlSerialzer 遇到需要 tp map 到枚舉的 XML 元素的值 null 或空字符串時,這是需要的。

我希望這個答案可以幫助任何有類似問題的人。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM