Well, first define "advanced", that is, what exactly do you need, what XmlSerializerdoes not. From the point of view of POCO, it XmlSerializerhas an overloaded ctor that accepts all the attributes you will ever want to add so as not to add them to your object model - but this still requires a public constructor without parameters and only works in public read / write fields / properties. And if you use this approach, you should cache / reuse the serializer.
, , " " - DTO. , DTO (-), ( ctor/properties/etc).
, ctor/properties DataContractSerializer , , xml.