XML, с которым я работаю, имеет следующую структуру:
<fixture_statistics>
<home_player_1 id="2306143" teamid="2">
<element_1>Some Data</element_1>
<element_2>Some Data</element_2>
</home_player_1>
<home_player_2 id="2306144" teamid="2">
<element_1>Some Data</element_1>
<element_2>Some Data</element_2>
</home_player_2>
</fixture_statistics>
Теперь код для десериализации обычно выглядит так:
[XmlRootAttribute("fixture_statistics", Namespace = "", IsNullable = false)]
public class FixtureRoot
{
[XmlElement("home_player_1")]
[XmlElement("home_player_2")]
public List<FixtureStats> fixtures { get; set; }
}
public class FixtureStats
{
public string element_1;
[XMLElement("element_2")]
public string elementTwo;
}
Вот вопрос: IХотелось бы, чтобы у класса FixtureStats было свойство 'position', которое соответствует имени элемента его родителя (поэтому объект FixtureStat, сопоставленный с home_player_1, имел бы position = 1).Можно ли это сделать с помощью встроенных атрибутов сериализации?
Если это невозможно, то какой самый чистый обходной путь?Помните, что в каждом документе будет около 50 элементов проигрывателя, каждый из которых содержит около 50 «дочерних» элементов данных.