"DUE"및 "RATE"를 XmlSerializer가있는 개체 목록에 매핑해야하는 다음 XML이 있습니다. 0에서 많은 수가있을 수 있으며, 항상 같은 "idx"와 쌍을 이루고 있습니다.목록에 같은 이름의 XML 값
<INVOICE ID="4">
<STATUS>S</STATUS>
<TOTAL>6230.00</TOTAL>
<DUE idx="1">14.12.17</DUE>
<RATE idx="1">6230.00</RATE>
</INVOICE >
<INVOICE ID="5">
<STATUS>S</STATUS>
<TOTAL>3270.00</TOTAL>
<DUE idx="1">30.11.17</DUE>
<RATE idx="1">1090.00</RATE>
<DUE idx="2">07.12.17</DUE>
<RATE idx="2">1090.00</RATE>
<DUE idx="3">14.12.17</DUE>
<RATE idx="3">1090.00</RATE>
</INVOICE>
나는 "때문에" "속도"와 목록없이 잘 작동 다음과 같은 설정이 있습니다
[Serializable]
public class UserInvoicesDto
{
[XmlElement("INVOICE")]
public List<UserInvoiceDto> Invoices { get; set; }
}
[Serializable, XmlRoot("INVOICE")]
public class UserInvoiceDto
{
[XmlAttribute("id")]
public int InvoiceId { get; set; }
[XmlElement("TOTAL")]
public string Total { get; set; }
}
을 그리고 난 다음 클래스가 있습니다.
[Serializable]
public class InvoicesDueDates
{
[XmlAttribute("idx")]
public string Id { get; set; }
[XmlElement("DUE")]
public string DueDate { get; set; }
[XmlElement("RATE")]
public string Rate { get; set; }
}
어떻게 든 가능합니까? 당신은 단지 직렬화해야하는 경우
문제는 [KeyValuePair 목록을 XML로 serialize] (https://stackoverflow.com/a/30443169/3744182) 또는 [RestrictPar를 사용한 Xml 시퀀스 역 직렬화] (https : // stackoverflow) 문제와 매우 유사합니다. .com/a/32885108/3744182). 둘 다 'XmlSerializer'를 사용하여 쌍 요소의 시퀀스를 deserialize하는 두 가지 다른 방법을 보여주는 대답을 갖고 있습니다. 그 대답이 충분한가요, 아니면 더 많은 도움이 필요합니까? – dbc
동일한 형식으로 역 직렬화 또는 다시 직렬화 만하면됩니까? – dbc
직렬화 및 비 직렬화를 수행하는 [특정 순서로 C#의 병렬 배열을 XML로 직렬화] (https://stackoverflow.com/q/47641622/3744182)를 참조하십시오. – dbc