使用RestSharp XmlSerializer将List属性序列化为父级的内容

时间:2019-07-02 09:35:04

标签: c# xml-serialization restsharp

我有 Parent 班级,其子级列表被声明为 Child 项列表。我希望将此列表序列化为XML,而不必将其包装为root的Parent元素的Children元素。

我尝试使用[SerializeAs(Content = true)]属性,但是IList属性似乎已被忽略。

我的父母和孩子课程:

public class Parent
{
    [SerializeAs(Content = true)]
    public List<Child> Children { get; set; } = new List<Child>();
}

public class Child
{
    public int Id { get; set; }
}

序列化过程的示例:

var parent = new Parent();
for (var i = 0; i < 3; i++)
{
    parent.Children.Add(new Child { Id = i + 1 });
}

var serializer = new RestSharp.Serializers.XmlSerializer();
var xml = serializer.Serialize(parent);

期望的是:

<Parent>
  <Child>
    <Id>1</Id>
  </Child>
  <Child>
    <Id>2</Id>
  </Child>
  <Child>
    <Id>3</Id>
  </Child>
</Parent>

我实际上看到的是

<Parent>
  <Children>
    <Child>
      <Id>1</Id>
    </Child>
    <Child>
      <Id>2</Id>
    </Child>
    <Child>
      <Id>3</Id>
    </Child>
  </Children>
</Parent>

0 个答案:

没有答案