【问题标题】:XML Serialization of an ENUM is emptyENUM 的 XML 序列化为空
【发布时间】:2011-07-04 09:57:31
【问题描述】:

这是 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 输出不包含表示枚举值的属性。 有人可以帮忙吗?非常感谢。

【问题讨论】:

    标签: c# xml serialization enums xmlserializer


    【解决方案1】:

    您的问题帮助我解决了将近 10 年后遇到的枚举问题。你现在应该已经知道答案了。您需要有一个 NULL 的枚举值,这将是枚举 (0) 中的第一个值。然后使用:

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

    作为用于“Null”枚举值的属性。当 XmlSerialzer 遇到需要 tp 映射到枚举的 XML 元素的值 null 或空字符串时,需要这样做。

    我希望这个答案可以帮助任何有类似问题的人。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-06-06
      相关资源
      最近更新 更多