XmlSerializer
делает все, что я хочу с одним исключением. Мне нужно связать элемент с другим элементом как атрибут этого элемента. Я не хочу писать полностью настраиваемый метод сериализации. Вот мой класс:XMLSerializer - Элемент управления-Атрибут Сопряжение (пересмотренная)
public class Transaction
{
[XmlElement("ID")]
public int m_id;
[XmlElement("TransactionType")]
public string m_transactiontype;
[XmlAttribute("TransactionTypeCode")]
public string m_transactiontypecode;
}
Я создаю и сериализую следующим образом;
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());
дает мне:
<Transaction TransactionTypeCode="520">
<ID>1</ID>
<TransactionType>Withdrawal</TransactionType>
</Transaction>
Я хочу:
<Transaction>
<ID>1</ID>
<TransactionType TransactionTypeCode="520">Withdrawal</TransactionType>
</Transaction>
Кто-то (Chris Dogget) предложил:
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;
}
Использование класса TransactionType выглядит многообещающим - вы можете показать мне, как вы d создавать классы перед сериализацией?
Спасибо!
Умение пометить, на каком языке программирования этот вопрос касается? – Calvin
Если вам нужно настроить вопрос, а затем настроить вопрос; не создавайте новую. Объединенное. –