gpt4 book ai didi

c# - 枚举的 XML 序列化

转载 作者:太空狗 更新时间:2023-10-29 17:38:32 26 4
gpt4 key购买 nike

我在序列化枚举值时遇到问题。

代码如下:

[System.Xml.Serialization.XmlRootAttribute(Namespace = "", IsNullable = false)]
public class REQUEST
{
[System.Xml.Serialization.XmlAttributeAttribute()]
public string ID;

[System.Xml.Serialization.XmlAttributeAttribute()]
public REQUESTTypetype Type;
}

public enum REQUESTTypetype
{
One,
Two,
Three,
Four,
}

...

REQUEST request = new REQUEST();
request.ID = "1234";
request.Type = REQUESTTypetype.One;

XmlDocument doc = new XmlDocument();
MemoryStream ms = new MemoryStream();
StreamWriter sw = new StreamWriter(ms);
XmlSerializer xs = new XmlSerializer(typeof(REQUEST));
xs.Serialize(sw, request_group);
ms.Position = 0;
doc.Load(ms);
TestWriteXml(doc, @"C:\xml_test.xml");

结果是:

<?xml version="1.0" encoding="utf-8" ?> 
<REQUEST ID="1234" />

为什么枚举没有序列化?我使用 .NET Framework 2.0。

谢谢。

最佳答案

我发现哪里出了问题。对于每个枚举类型

[System.Xml.Serialization.XmlAttributeAttribute()]
public REQUESTTypetype Type;

我明白了:

[System.Xml.Serialization.XmlIgnoreAttribute()]
public bool TypeSpecified;

在代码中我应该这样做:

request.Type = REQUESTTypetype.One;
request.TypeSpecified = true;

现在可以正常使用了。我应该将它们张贴在我的问题中,但我根本没有注意这些“指定”成员。感谢您的回复。

关于c# - 枚举的 XML 序列化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3890728/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com