gpt4 book ai didi

c# - 如何使用 XmlSerializer 序列化对象类型的属性

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

我有一个属性(property):

public object Tag

但它可以包含有限数量的类型,不幸的是没有基本类型(对象类型除外)。但是当我用这个属性序列化对象时,它并没有被序列化。有没有办法用可能的类型来指示 XmlSerializer?

最佳答案

我不推荐这样做,但是可以,您可以使用 [XmlElement] 等来告诉它一个成员的多个候选类型:

public class Test
{
private static void Main()
{
var ser = new XmlSerializer(typeof (Test));
var obj = new Test {Value = "abc"};
ser.Serialize(Console.Out, obj);
obj = new Test { Value = 123 };
ser.Serialize(Console.Out, obj);
obj = new Test { Value = 456.7F };
ser.Serialize(Console.Out, obj);
}

[XmlElement("a", Type = typeof(int))]
[XmlElement("b", Type = typeof(string))]
[XmlElement("c", Type = typeof(float))]
public object Value { get; set; }
}

输出的重要部分(忽略所有 xmlns/<?xml> 等)是:

<Test>
<b>abc</b>
</Test>

<Test>
<a>123</a>
</Test>

<Test>
<c>456.7</c>
</Test>

关于c# - 如何使用 XmlSerializer 序列化对象类型的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9497310/

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