相关疑难解决方法(0)

如何将枚举值序列化为int?

我想将我的枚举值序列化为int,但我只得到名称.

这是我的(示例)类和枚举:

public class Request {
    public RequestType request;
}

public enum RequestType
{
    Booking = 1,
    Confirmation = 2,
    PreBooking = 4,
    PreBookingConfirmation = 5,
    BookingStatus = 6
}
Run Code Online (Sandbox Code Playgroud)

和代码(只是为了确保我做错了)

Request req = new Request();
req.request = RequestType.Confirmation;
XmlSerializer xml = new XmlSerializer(req.GetType());
StringWriter writer = new StringWriter();
xml.Serialize(writer, req);
textBox1.Text = writer.ToString();
Run Code Online (Sandbox Code Playgroud)

这个答案(对另一个问题)似乎表明枚举应该序列化为默认值,但它似乎并没有这样做.这是我的输出:

<?xml version="1.0" encoding="utf-16"?>
<Request xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <request>Confirmation</request>
</Request>
Run Code Online (Sandbox Code Playgroud)

我已经能够通过在每个值上放置一个"[XmlEnum("X")]"属性来序列化为值,但这似乎是错误的.

.net enums xml-serialization

76
推荐指数
3
解决办法
5万
查看次数

反序列化枚举

我有一个xml,其中一个元素的属性可以为空.例如,

<tests>
<test language="">
.....
</test>
</tests>
Run Code Online (Sandbox Code Playgroud)

现在,语言是从模式创建的类中的枚举类型.如果指定了语言,它可以正常工作,如果它是空白则无法反序列化(如示例所示).

编辑:反序列化的代码:

XmlSerializer xmlserializer = new XmlSerializer(type);
StringReader strreader = new StringReader(stringXML);
Object o = serializer.Deserialize(strreader);
Run Code Online (Sandbox Code Playgroud)

我该如何处理这种情况

.net c# xml xml-deserialization

17
推荐指数
3
解决办法
2万
查看次数

将xml值映射到枚举类型

我需要解析从第三方到C#对象的XML文件.我收到的一些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>  
Run Code Online (Sandbox Code Playgroud)

我想把它映射到枚举,我得到了这个:

public enum Fuel
{
    B,
    D,
    L,
    E,
    H,
    C,
    O
}
Run Code Online (Sandbox Code Playgroud)

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

我也可以使用a -或a /中的其他值获取其他值,并且我想将其放入枚举类型中.
欢迎Anu建议!

c# xml enums

15
推荐指数
3
解决办法
3万
查看次数

标签 统计

.net ×2

c# ×2

enums ×2

xml ×2

xml-deserialization ×1

xml-serialization ×1