Odhalujeme .net - Deserializace - řešení

Aneb, jak se také nedočkat správné odpovědi. Zřejmě jsem zvolil velice záludnou otázku a přestože si ji přečetlo jistě více jak 70 lidí, žádný se nepokusil o její zodpovězení.

Nebudu tedy více napínat všechny ty, kteří čekají na správné řešení. Problémem, na který jsem narazil, bylo zpracovávání tzv. bílých znaků, whitespacehandling. Jak už jsem se zmínil, bylo potřeba serializovat a zpětně deserializovat malé konfigurační objekty a mezi jednotlivými vlastnostmi se objevila i samotná mezera.

Ta se ovšem při použití vstupního parametru typu StringReader nepřevedla zpět. Tudíž bylo nutné explicitně vytvořit XmlTextReader a teprve ten použít pro deserializaci xml řetězce. Pokud se podíváte blíže na implementaci metody Deserialize() např. pomocí Reflectoru, zjistíte, že se interně vytváří právě XmlTextReader a nastavuje se mu property WhitespaceHandling. A právě v nastavení této property ležel ten hlavní důvod a úskalí celého řešení.

Takže cena pro tuto chvíli zůstává pro mě.

code-snippet
Posted by: Jarda Jirava
Last revised: 27 Oct, 2006 04:53 PM History

Comments

29 Oct, 2006 10:45 PM @ version 0

Zdravim Jardo, testuji funkcnost komentaru. Protoze kdyz jsem na tvoji hadanku odpovidal, tak ti moje odpoved nedorazila nebo neprosla. BTW: Strefil jsem se ;)


29 Oct, 2006 11:48 PM @ version 0

Ahoj René, tak jsem prošel celou DB a tvuj komentár jsem nenašel. Tech nevyžádaných (pouze url) zase tolik nemám, abych náhodou smazal zrovna tvuj. Tak ted nevím, zda nezacít podezírat CS. Pravda, tech komentáru tu tolik nemám, takže je klidne možné, že to obcas zahapruje. Díky

BTW: tak ted si nejsem jist, že by skutecne chybka pri pridávání druhého komentáre v porádí?

30 Oct, 2006 08:57 PM @ version 0

Nevim Jardo, komentar jsem poslal a pak se CS yacal chovat "divne". Myslim, ze se objeila nejaka chybova stranka.

Pokud by se to opakovalo, dam ti vedet.


31 Oct, 2006 11:18 AM @ version 0

Tak se nakonec nejednalo o chybu CS ale moji. Mám vložené nekteré CS moduly a jeden z nich nepovolil víc jak jeden komentár k príspevku. Tímto se omlouvám. Díky

Your Comments

Used for your gravatar. Not required. Will not be public.
Posting code? Indent it by four spaces to make it look nice. Learn more about Markdown.

Preview