Die XmlSerializer
macht alles was ich will mit einer Ausnahme. Ich muss ein Element mit einem anderen Element als ein Attribut dieses Elements paaren. Ich möchte keine vollständig benutzerdefinierte Serialisierungsmethode schreiben. Hier ist meine Klasse:Xmlserializer - Kontrollelement-Attribut Paarung (überarbeitet)
public class Transaction
{
[XmlElement("ID")]
public int m_id;
[XmlElement("TransactionType")]
public string m_transactiontype;
[XmlAttribute("TransactionTypeCode")]
public string m_transactiontypecode;
}
Ich Instanziieren und serialisieren wie folgt;
Transaction tx = new Transaction();
tx.m_id = 1;
tx.m_transactiontype = "Withdrawal";
tx.m_transactiontypecode = "520";
StringWriter o = new
StringWriter(CultureInfo.InvariantCulture);
XmlSerializer s = new
XmlSerializer(typeof(Transaction));
s.Serialize(o, tx);
Console.Write(o.ToString());
Gibt mir:
<Transaction TransactionTypeCode="520">
<ID>1</ID>
<TransactionType>Withdrawal</TransactionType>
</Transaction>
Ich möchte:
<Transaction>
<ID>1</ID>
<TransactionType TransactionTypeCode="520">Withdrawal</TransactionType>
</Transaction>
Jemand (Chris Dogget) vorgeschlagen:
public class Transaction
{
[XmlElement("ID")]
public int m_id;
public TransactionType m_transactiontype;
}
public class TransactionType
{
public TransactionType(){}
public TransactionType(string type) { this.m_transactiontype = type; }
[XmlTextAttribute]
public string m_transactiontype;
[XmlAttribute("TransactionTypeCode")]
public string m_transactiontypecode;
}
Die Verwendung der Transaction Klasse sieht vielversprechend aus - kannst du mir zeigen, wie es dir geht? d instanziieren die Klassen vor der Serialisierung?
Danke!
Mind Tagging welche Programmiersprache diese Frage in Bezug auf ist? – Calvin
Wenn Sie die Frage optimieren müssen, dann optimieren Sie die Frage; Erstelle kein neues. Zusammengeführt. –