2NDREALITY: vezmes objekt (libovolnej) - vezmes si jeho typ, pres reflexi si vytahnes informaci o typu a jeho vlastnostech a pak s tim pracujes. takze serializace probiha nejak takhle (pseudo-pseudokod):
foreach (var field in objectType.fields)
{
var value = GetValue(field, object);
Serialize(value)
}
muzes si jednotlivy polozky v tride omarkovat nejakymi atributy, takze budes serializovat treba jen ty, nebo nejakym specifickym zpusobem, sranda pochopitelne nastava u polozek, ktere odkazuji na jiny objekt, ale napsat se to da.
Rozhodne doporucuju se na to nakouknout, protoze pouzivani reflexe muze spoustu veci neuveritelne usnadnit, at uz je to serializace, nebo treba nejake vytvareni gui jen na zaklade reflexe - proc psat pro kazdy typ objektu nejaky gui objekt nebo editor, kdyz to vetsinou zvladne nejaky obecny? Plna reflexe je jeden z duvodu, proc uprednostnuju c# pred c++ (ne ze by se do c++ nedala reflexe pres templaty dorvat, ale...)