In C#, sto cercando di serializzare ClasseA in XML:della classe Serialize ToString() come XmlElement
[Serializable]
public ClassA
{
[XmlElement]
public string PropertyA { get; set; } // works fine
[XmlElement]
public ClassB MyClassB { get; set; }
}
[Serializable]
public ClassB
{
private string _value;
public override string ToString()
{
return _value;
}
}
Purtroppo, il risultato serializzato è:
<PropertyA>Value</PropertyA>
<ClassB />
Invece, lo voglio essere:
<PropertyA>Value</PropertyA>
<ClassB>Test</ClassB>
... assumendo _value == "Test"
. Come faccio a fare questo? I hanno per fornire una proprietà pubblica in ClassB per _value
? Grazie!
UPDATE:
implementando l'interfaccia IXmlSerializable in ClassB (shown here # 12), il seguente codice XML viene generato:
<PropertyA>Value</PropertyA>
<ClassB>
<Value>Test</Value>
</ClassB>
Questa soluzione è quasi accettabile, ma sarebbe bello sbarazzarsi dei tag. Qualche idea?
Ah, mi hai mostrato il problema! Stavo usando 'WriteElementString (" Value ", _value)' invece di 'WriteString (_value)'. Ora il mio XML guarda come voglio io: ' Test ' –
Pakman