Zdravim,
resim serializaci v C#. Konkretne se mi jedna o tohle:
promenna g obsahuje pred serializaci 3 seznamy integeru = {{1},{},{1}};Kód:List<List<int>> g = new List<List<int>>(); g.Add(new List<int>()); g.Add(new List<int>()); g.Add(g[0]); // zde opravdu vkladam odkaz na prvni seznam g[0].Add(1); XmlSerializer x = new XmlSerializer(typeof(List<List<int>>)); StringWriter sw = new StringWriter(); x.Serialize(sw, g); g = (List<List<int>>)x.Deserialize(new StringReader(sw.ToString())); g[0].Add(2);
po serializaci a deserializaci opet to same = {{1},{},{1}};
Ovsem posledni prikaz (g[0].Add(2); ) zmeni jen prvni prvni seznam. Cili v g je = {{1,2},{},{1}};
Zda se tedy (a podle obsahu sw ani jina moznost neni) ze treti seznam v g po deserializaci neni odkazem na prvni seznam.
Jak docilit toho aby reference zustaly zachovany?
PS: z prednasky o Jave si pamatuju, ze Java by reference zachovavat mela, tak je mi nejasne, proc to C# neumi :/