这是由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输出不包含表示枚举值的属性。 有人可以帮忙吗?非常感谢。
答案 0 :(得分:0)
您的问题帮助我解决了将近十年后的枚举所遇到的问题。您现在可能已经找到答案了。您需要具有NULL的枚举值,该值将是枚举(0)中的第一个值。然后使用:
[System.Xml.Serialization.XmlEnumAttribute("")]
作为用于“ Null”枚举值的属性。当XmlSerialzer遇到需要将tp映射到枚举的XML元素的值为null或空字符串时,就需要这样做。
我希望这个答案对遇到类似问题的人有帮助。