加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 如何使用XmlSerializer序列化Object类型的属性

发布时间:2020-12-15 04:09:31 所属栏目:百科 来源:网络整理
导读:我有一个属性: public object Tag 但它可以包含有限数量的类型,遗憾的是没有基类型(对象类型除外).但是,当我使用此属性序列化对象时,它不会被序列化.有没有办法用可能的类型指示XmlSerializer? 解决方法 我不推荐这个,但是,您可以使用[XmlElement]等告诉它
我有一个属性:
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>

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读