Я пытаюсь десериализации XML-документ, который выглядит, как этотКак десериализации Xml с корнем, чем несколькими дочерними элементами одного и того же типа
<invoices>
<invoice>2848</invoice>
<invoice>2849</invoice>
<invoice>2850</invoice>
<invoice>2851</invoice>
<invoice>2852</invoice>
</invoices>
в C# объекта, но я не могу заставить его работать. Я использую DataContractSerializer
Это то, что мой класс выглядит следующим образом:
[DataContract(Name = "invoices", Namespace = "")]
public class Invoices
{
[DataMember(Name = "invoice")]
public Invoice[] InvoiceIds { get; set; }
}
[DataContract(Name = "invoice", Namespace = "")]
public class Invoice
{
[DataMember(Name = "invoice")]
public string Id { get; set; }
}
Конечно, это не работает. Я получаю эту ошибку:
{"Error in line 1 position 24. Expecting state 'Element'.. Encountered 'Text' with name '', namespace ''. "}
Я не контролирую Xml.
Я не на 'DataContractSerializer', но Сериализация любой нормальный класс, он должен быть отмечен как' Сериализуемый() '. Выполняет ли это 'DataContract()'? – jp2code
@ jp2code, 'DataContractSerializer' не нуждается в атрибуте' [Serializable] '. Он может сериализовать типы, отмеченные им, а также с другими ('DataContract',' CollectionDataContract', 'IXmlSerializable' и даже типы, не отмеченные ничем, для которых он использует некоторые соглашения о том, что сериализовать). – carlosfigueira