我有一个属性:
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>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。