У меня есть классы, как этотXML и DataContractSerializer
[DataContract(Namespace = "")]
public class Foo
{
[DataMember(Order = 0)]
Bar bar;
}
[DataContract(Namespace = "")]
public class Bar
{
Baz baz;
[DataMember(Order = 0)]
string TheBaz
{
get { baz.ToString(); }
set { SomeOtherCode(value); }
}
}
Я хочу, чтобы это сгенерировать XML, как этот
<Foo>
<Bar>String from baz.ToString()</Bar>
</Foo>
, но я получаю что-то подобное:
<Foo>
<Bar><TheBaz>String from baz.ToString()</TheBaz></Bar>
</Foo>
возможно чтобы исправить это? This artical говорит, что один из недостатков DataContractSerializer является:
- Отсутствие контроля над тем, как объект сериализуется за пределами установки имени и порядок
ведет меня задаться вопросом, не является это не разрешимая проблема.
я знал, это может быть сделано с IXmlSerializable
и ReadXml
/WriteXml
, потому что я должен быть удаление кода, который делает именно это.
Но как бы вы иметь дело с дополнительными свойствами в классе «Бар» в этом сценарии? –
То есть * точно * код, с которым я был связан, избавился от :) – BCS
@marc_s & BCS: Если вы реализуете IXmlSerializable, DataContractSerializer использует эту реализацию для вывода, так что разработчик должен решить, что делать с дополнительные свойства. – casperOne