To jest ten, z którym zmagałem się przez wieki, więc pomyślałem, że gdzieś dokumentuję. (Przepraszam za zadawanie i odpowiadanie na pytanie.)Dlaczego moja publiczna właściwość nie jest serializowana przez XmlSerializer?
(C# .net 2.0) Miałem klasę, która była serializowana przez XmlSerializer, dodałem nową właściwość publiczną, jednak nie została ona uwzględniona w wynikowym kodzie XML.
Nie jest to wspomniane w dokumentach, gdziekolwiek można znaleźć, ale właściwości publiczne muszą mieć zestaw, a także uzyskać serialowanie! Sądzę, że dzieje się tak dlatego, że zakłada się, że jeśli zamierzasz serializować, będziesz chciał deserializować z tego samego pliku, więc tylko serializuje właściwości, które mają zarówno zestaw, jak i get.
Mimo, że mam pewne właściwości z tylko dostać. Są one również oznaczone atrybutami XmlArray i XmlArrayItem, więc domyślam się, że właśnie dlatego unikają zestawu. – Rory
W niektórych przypadkach właściwość, która zwraca kolekcję, nie wymaga zestawu, ale musi zostać zainicjowana w konstruktorze ... Dotyczy to kolekcji bez publicznego konstruktora. Ale to zachowanie wydaje mi się nieco niespójne ... –
Nigdy tego nie zauważyłem, dzięki Thomas; Zbadam ;-p –