Plecam de la urmatoarea structura: public abstract class BaseCar { public string Name { get; set; } } public class SportCar : BaseCar { } public class UtilityCar : BaseCar { } public Foo { public Foo() { Cars = new List<BaseCar>(); } public List<BaseCar> Cars { get; set; } } ... Foo myFoo = new Foo(); myFoo.Cars.Add( new SportCar()); DataContractSerializer serializer = new DataContractSerializer(typeof(Foo)); serializer.WriteObject(myXmlWriter, myFoo); Cand nu avem specificat nici un atribut de tip DataContract, toate campurile care sunt publice se serializeaza. In cazul nostru codul se compileaza fara probleme si obtinem un obiect serializat. Problema apare cand vrem sa deserializam obiectul nostru si ne trezim ca proprietatea Cars este null. Chiar daca in constructor inializam aceasta proprietate obtinem in continuare NULL. Cand ne uitam peste cod realizam ca lucram cu o clasa abstracta, iar in acest caz avem nevoie de atributul KnownTypes pe care il si ad...
DREAMER, CRAFTER, TECHNOLOGY ENTHUSIAST, SPEAKER, TRAINER, AZURE MVP, SOLVING HARD BUSINESS PROBLEMS WITH CUTTING-EDGE TECHNOLOGY