c# - 将 xml 值映射到枚举类型

标签 c# xml enums

我需要将从第三方获取的 XML 文件解析为 C# 对象。 我收到的一些 XML 具有枚举值,我想将其存储在枚举类型中。

例如,我有如下xml文件的xsd:

<xsd:simpleType name="brandstof">
  <xsd:restriction base="xsd:string">
    <!--  Benzine --> 
    <xsd:enumeration value="B" /> 
    <!--  Diesel --> 
    <xsd:enumeration value="D" /> 
    <!--  LPG/Gas --> 
    <xsd:enumeration value="L" /> 
    <!--  LPG G3 --> 
    <xsd:enumeration value="3" /> 
    <!--  Elektrisch --> 
    <xsd:enumeration value="E" /> 
    <!--  Hybride --> 
    <xsd:enumeration value="H" /> 
    <!--  Cryogeen --> 
    <xsd:enumeration value="C" /> 
    <!--  Overig --> 
    <xsd:enumeration value="O" /> 
  </xsd:restriction>
</xsd:simpleType>  

我想将它映射到一个枚举,我做到了这一点:

public enum Fuel
{
    B,
    D,
    L,
    E,
    H,
    C,
    O
}

我遇到的问题是 xml 可以包含 3 的值,我似乎无法将其放入枚举类型中。是否有任何解决方案可以将此值放入枚举中。

我还可以获得其他带有 -/ 的值,我想将其放入枚举类型中。
欢迎 Anu 建议!

最佳答案

XmlEnum 属性装饰:http://msdn.microsoft.com/en-us/library/system.xml.serialization.xmlenumattribute.aspx

public enum Fuel
{
    [XmlEnum("B")]
    Benzine,
    [XmlEnum("D")]
    Diesel,
    [XmlEnum("L")]
    LpgGas,
    [XmlEnum("3")]
    LpgG3,
    [XmlEnum("E")]
    Elektrisch,
    [XmlEnum("H")]
    Hybride,
    [XmlEnum("C")]
    Cryogeen,
    [XmlEnum("O")]
    Overig
}

关于c# - 将 xml 值映射到枚举类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6293400/

相关文章:

c# - 代码未运行,因为另一个线程正在访问它

c# - 使用 HttpClient 避免死锁

php - XML 文档中的奇怪字符

java - 方法返回 false,但条件匹配并且应该返回 true

c# - 激活线程 C#

c# - 从 Outlook 新邮件中检索收件人

java - 当 Java 类具有 java.util.Properties 时如何进行 JAXB 转换?

xml - Illustrator SVG 效果编码问题

c++ - "enum class"是 C++ 中的类类型吗?

delphi - 如何(正确)使用带有实时绑定(bind)的枚举类型(TObjectBindSourceAdapter)