Autor Wątek: [C#]Serializacja prywatnych pól  (Przeczytany 1660 razy)

Offline Amplifa

  • Użytkownik

# Sierpień 18, 2010, 19:50:00
Czy jest jakiś sposób serializowania klasy w której są pola prywatne ?
 Z tym że nie chce tego serializować do formatu binarnego , bo to po prostu musi być możliwe do odczytania przez człowieka...

Offline Mr. Spam

  • Miłośnik przetworów mięsnych

Offline nembutal

  • Użytkownik

# Sierpień 18, 2010, 20:02:06
Już dawno nie siedziałem w C#, więc nie udzielę 100% konkretnej odpowiedzi, ale otworzyłem działający projekt i mam tam serializację prywatnych pól poprzez System.Xml.Serialization.XmlSerializer - z tym, że mam też publiczne akcesory get/set (nie pamiętam jak to się nazywa) i może one są do tego konieczne.

Offline Amplifa

  • Użytkownik

# Sierpień 18, 2010, 20:10:53
Z tym że jeżeli są publiczne get'y i set'y to jakby cala idea traci sens, chciałbym żeby cala klasa była ładnie zapakowana.

Offline głos

  • Użytkownik

# Sierpień 18, 2010, 21:40:46
XmlSerializer 'widzi' tylko pola i właściwości publiczne. Jeśli potrzebujesz większej kontroli, możesz zaimplementować interfejs IXmlSerializable i serializować co zechcesz :)

Gotowy przykład: http://msdn.microsoft.com/en-us/library/system.xml.serialization.ixmlserializable.aspx

Offline counterClockWise

  • Użytkownik

# Sierpień 18, 2010, 22:14:05
Od biedy możesz użyć refleksji i zwykłego StreamWritera - lecisz po wszystkich polach, zapisujesz type.toString() i value.ToString().