Есть следующий XML:
<?xml version="1.0" encoding="UTF-8"?>
<issue_statuses>
<issue_status>
<id>1</id>
<name>Новый</name>
<is_default>true</is_default>
<is_closed>false</is_closed>
</issue_status>
<issue_status>
<id>2</id>
<name>Назначен</name>
<is_default>false</is_default>
<is_closed>false</is_closed>
</issue_status>
</issue_statuses>
Задача: получить из него объекты типа:
public class IssueStatus
{
[XmlElement("id")]
public int Id { get; set; }
[XmlElement("name")]
public string Name { get; set; }
[XmlElement("is_default")]
public bool IsDefault { get; set; }
[XmlElement("is_closed")]
public bool IsClosed { get; set; }
}
Вариант: Это можно сделать например так:
// Бесполезный класс-обертка
[XmlRoot("issue_statuses")]
public class IssueStatuses
{
[XmlElement("issue_status")]
public IssueStatus[] items;
}
// Получаем нужное
private static IssueStatus[] GetIssueStatuses()
{
IssueStatuses statuses;
using (var txtReader = new StreamReader(@"statuses.xml"))
{
XmlSerializer xmlSerializer = new XmlSerializer(typeof(IssueStatuses));
statuses = (IssueStatuses)xmlSerializer.Deserialize(txtReader);
}
Console.WriteLine(statuses.items.Length);
return statuses.items;
}
Вопрос: Можно ли как-то избавиться от бесполезной обертки IssueStatuses и сразу получать IssueStatus[]?