繁体   English   中英

我如何在xml中接受一个int并将其序列化为枚举

[英]How do I accept an int in xml and serialize it as an enum

我正在研究一种在请求正文中接受XML的API。

收到XML时,我使用XmlSerializer类将XML转换为对象。 该对象的属性之一是枚举值列表。

我想做的是使客户端可以传递枚举的int值,而不必传递值的名称。

例如,假设xml的一部分如下所示:

<Amenities>
    <AmenityCode>1</AmenityCode>
    <AmenityCode>2</AmenityCode>
</Amenities>

我有一个我的班级是这样定义的

public class HotelSearch{
  public List<AmenityCode> Amenities { get; set; }
}

public enum AmenityCode {
   AirConditioning = 1,
   AirportTranfer = 2
}

当我序列化HotelSearch对象时,是否有办法告诉XmlSerializer接受<AmenityCode>1</AmenityCode>并将其转换为AmenityCode.AirConditioning

我知道我可以创建一个新的HotelSearch对象并通过XML解析来设置所有属性,但是我的总体目标是懒惰,这会HotelSearch目的。

建议为序列化/反序列化请求中的枚举使用字符串值。 但是如果您想要一个int值,则尝试在枚举上使用XmlEnum属性。

public enum AmenityCode 
{
       [XmlEnum("1")]
       AirConditioning = 1,
       [XmlEnum("2")]
       AirportTranfer = 2
}

还有一种创建匀场属性的方法,但是当涉及许多属性时,该方法将变得太混乱。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM