class nieserializowalna //to jest nie Twoje, nie mozesz tego ruszyc ani zmodyfikowac
{
public int blah {get;set;}
public int bleh {get;set;}
public int bloh {get;set;}
public void metoda();
public void medato();
public void tomeda();
}
/*class czyserializowalna : nieserializowalna
{
//nie chcialo Ci sie pisac i przepisywac, wiec sobie 'po'dziedziczyles
//zeby Twoja klasa miala te same props & meths co oryginal
//ale, ciekawe jak chcesz ją zserializowac, skoro jej BAZA nie nadaje sie do tego?!
//zserializujesz PÓŁ OBIEKTU ?
}*/
class serializowalna //taka klase dasz rade zserializowac, bo jest Twoja
{
public int blah {get;set;}
public int bleh {get;set;}
public int bloh {get;set;}
}
gdziekolwiek
{
public static serializowalna pack(nieserializowalna orig)
{
tmp = new serializowalna();
tmp.blah = orig.blah;
tmp.bleh = orig.bleh;
tmp.bloh = orig.bloh;
return tmp;
}
public static void unpack(nieserializowalna target, serializowalna packed)
{
target.blah = packed.blah;
target.bleh = packed.bleh;
target.bloh = packed.bloh;
}
}
i tak to wlasnie musisz zrobic i kropka. i miej nadzieje ze te dane ktore chcesz zserializowac (blah, bleh, bloh) sa serializowalne tak jak int'y. bo jezeli sa to zlozone obiekty... ;]
tak niestety wyglada serializacja rzeczy ktore sie do niej nie nadaja.
przemysl - moze zamiast upierac sie i serializowac treenode, moze moglbys raczej zapisywac ich key/parent/value i potem na tej podstawie odtwarzac drzewo? ano, albo sie na'pracujesz, albo sie na'myslisz, jak to w zyciu..