То, что вы ищете, не то, что XmlSerializer
поддерживает, и, честно говоря, это плохой дизайн для xml в целом; он не только является избыточным (заказывается xml: нет необходимости сообщать ему, что вы являетесь элементом 1/2/3), но он активно враждебен большинству инструментов xml, включая сериализаторы, средства проверки схемы и т. д. c.
Мое убедительное предложение - переосмыслить xml, который вы хотите, или бросить вызов требованиям, если это не ваша идея. Если D_number42
всегда будет соответствовать ID="42"
, который является родителем, то, откровенно говоря, суффикс не имеет абсолютно никакой цели. Если это другое число, которое по совпадению выглядит одинаково только в этих примерах, то: <D_number someattribute="42">06</D_number>
Но если вы должны сделать это, вам придется сделать это вручную, через XDocument
, XmlDocument
или XmlWriter
.
в качестве примера, используя XmlWriter
:
static void WriteCredit(XmlWriter xml, string id, string number)
{
xml.WriteStartElement("CREDITS");
xml.WriteStartElement("CREDIT");
xml.WriteAttributeString("ID", id);
xml.WriteElementString("D_number" + id, number);
xml.WriteEndElement();
xml.WriteEndElement();
}
с использованием записи в консоль:
using (var xml = XmlWriter.Create(Console.Out))
{
WriteCredit(xml, "1", "06");
}