Als je met 3rd party software werkt, en je wilt toch controle hebben over de serialisatie van een bepaald type, gebruik dan DataContract Surrogates.
Stel, je wilt een extern type serialiseren die je niet zomaar kan wijzigen. Dan kan je een eigen kopie van die class maken, en hier de gewenste attributen definieren. Vervolgens moet de IDataContractSurrogate interface geimplementeerd worden, zodat de originele class gekoppeld wordt aan jouw versie.
Deze mapping zorgt dan automagisch voor de (de)serialisatie en uitwisseling van metadata.