Morri
Morri

Reputation: 581

How to serialize this Xml in .NET (array)

I need Xml that looks like this

<foo>
  <bar ... />
  <bar ... />
</foo>

And currently have the following class structure :

[XmlRoot("foo")]
public class Foo
{
  [XmlArrayItem("bar")]
  public List<Bar> myBars;
}

But this gives me Xml where bar items are wrapped inside a bars element. How should I define my custom XmlAttributes so I'd get the Xml structure I need?

Upvotes: 5

Views: 149

Answers (2)

Steven
Steven

Reputation: 172786

The solution I use is this:

[XmlRoot("foo")]
public class Foo : List<Bar>
{
}

[XmlType("bar")]
public class Bar
{
}

In fact, I defined Foo as a List<T>, so it works as a generic list. The type in that list just needs to define the XmlType attribute.

Upvotes: 3

David M
David M

Reputation: 72890

I had to solve something similar yesterday, and this was the solution for me:

[XmlRoot("foo")]
public class Foo
{
    [XmlElement("bar")]
    public List<Bar> myBars;
}

Upvotes: 7

Related Questions