.NET XML Serialization Array / Псевдоним объекта списка - PullRequest
4 голосов
/ 31 августа 2010

Мне нужно сериализовать объект следующим образом:

public class Book
{
  public string Title      { get; set; }
  public string[] Authors      { get; set; }
}

Это генерирует что-то вроде этого:

<?xml version="1.0" encoding="utf-8"?>
<Book xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <Title>Good Book</Title>
  <Authors>
        <string>Author1</string>
        <string>Author2</string>
  </Authors>
</Book>

Я ищу что-то вроде:

<?xml version="1.0" encoding="utf-8"?>
<Book xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <Title>Good Book</Title>
  <Authors>
        <AuthorName>Author1</AuthorName>
        <AuthorName>Author2</AuthorName>
  </Authors>
</Book>

AuthorName - это просто строка. Как я могу сделать это, не создавая упаковщик строк?

Спасибо

Ответы [ 2 ]

2 голосов
/ 31 августа 2010

Используйте атрибут XmlArrayItem :

public class Book
{
  public string Title { get; set; }
  [XmlArrayItem("AuthorName")]
  public string[] Authors { get; set; }
}
2 голосов
/ 31 августа 2010

Используйте атрибут XmlArrayItem:

public class Book
{
    public string Title { get; set; }

    [XmlArrayItem("AuthorName")]
    public string[] Authors { get; set; }
}
...