Я десериализую ответы XML из API.Deserialize один элемент коллекции
<?xml version="1.0" encoding="UTF-8"?>
<categories type="array">
<category>
<parent-id />
<name>Şirketiçi</name>
<count type="integer">0</count>
<elements-count type="integer">0</elements-count>
<id type="integer">18940</id>
<type>ProjectCategory</type>
</category>
</categories>
Я могу десериализовать XML-ответ, как описано выше, используя классы ниже.
[XmlRoot("categories")]
public class CategoriesResponse :IEntityResponse
{
public CategoriesResponse()
{
Categories = new List<Category>();
}
[XmlElement("category")]
public List<Category> Categories { get; set; }
}
Но я также получаю ответ с одним узлом категории, как показано ниже, из API.
<?xml version="1.0" encoding="UTF-8"?>
<category>
<parent-id />
<name>Şirketiçi</name>
<count type="integer">0</count>
<id type="integer">18940</id>
<elements_count type="integer">0</elements_count>
<type>ProjectCategory</type>
</category>
Поэтому я написал класс с свойством Category для этого ответа, но не может десериализоваться.
[XmlRoot("category")]
public class CategoryResponse
{
public CategoryResponse()
{
}
[XmlElement("category")]
public Category Category;
public string STATUS { get; set; }
}
Я хочу использовать класс категории для десериализации. Какое определение класса следует использовать для этого ответа XML.
На самом деле я знаю, что могу десериализовать класс класса, но я использую для ответов обобщенные методы на основе интерфейса IEntityResponse. Поэтому мой класс десериализации, ожидающий параметров, полученных из IEntityResponse, не является классом. Я не хочу изменять все мои методы десериализации или добавлять новые методы для классов, которые не являются производными от интерфейса. –
В любом случае класс deserialize 'category' должен выглядеть аналогично классу, который я написал выше. Внедрите 'IEntityResponse', и вы должны быть настроены. Я не вижу другого реального варианта. –