Mikuláš je tu! Získaj 90 % extra kreditov ZADARMO s promo kódom CERTIK90 pri nákupe od 1 199 kreditov. Len do nedele 7. 12. 2025! Zisti viac:
NOVINKA: Najžiadanejšie rekvalifikačné kurzy teraz s 50% zľavou + kurz AI ZADARMO. Nečakaj, táto ponuka dlho nevydrží! Zisti viac:

Diskusia – 10. diel - Serializácia a deserializácia v C# .NET

Späť

Upozorňujeme, že diskusie pod našimi online kurzami sú nemoderované a primárne slúžia na získavanie spätnej väzby pre budúce vylepšenie kurzov. Pre študentov našich rekvalifikačných kurzov ponúkame možnosť priameho kontaktu s lektormi a študijným referentom pre osobné konzultácie a podporu v rámci ich štúdia. Toto je exkluzívna služba, ktorá zaisťuje kvalitnú a cielenú pomoc v prípade akýchkoľvek otázok alebo projektov.

Komentáre
Posledné komentáre sú na spodnej časti poslednej stránky.
Avatar
paanoik
Člen
Avatar
Odpovedá na Kit
paanoik:2.8.2013 17:49

myšleno jako global error handler .. e.g.

try
{
  Application.Run(new Form1());
}
catch
{
  //global error handler here
}

Ale ono tohle zobecňování se dost dobře v praxi použít většinou nedá. Často dělám na nástrojích, které jsou jednoúčelové - konverze, import/export, zpracování dat, kde se dá buď říct, že to funguje, nebo se to posralo a jde o stav, který je buď potřeba nějak handlovat nebo na něj upozornit klienta. V obou případech pomáhá ten global handler, protože místo výjimky jednoduše vybleje obecnou hlášku, že při běhu programu došlo k chybě a do logu mi vypíše co potřebuju já (tzn. detailní exception). Já nebudu za blbce, protože program vlastně nespadl, jen se stalo něco, za co můžou stejně oni, protože testovací data problémy nezpůsobovala. A navíc mě to stojí minimum práce, narozdíl od hodnocení a handlování každé třídy zvlášť.

Jeden kolega mi kdysi řekl památnou větu ve smyslu, že pokud máš čas si hrát s takovýma blbostma jako lokální error handlery, vyhazuješ buď prachy svoje nebo klienta. Jako není to myšlený tak, že se všechny handlery nahradí jedním, tam, kde je zřejmý, že k těm problémům dochází (obecně cokoliv externího - soubory, db, knihovny), catchovat hned při psaní. Ale než paranoidně procházet celej kód a přemýšlet, kde by se to tak ještě mohlo posrat, global handler FTW.

Avatar
wolf661
Člen
Avatar
wolf661:5.7.2014 14:46

Cavte, ako som si tu vsimol vlastnosti triedy Uzivatel su verejne(public). Preco je to tak? Ja som si myslel ze jeden z principov OOP je zapuzdrenie.

Odpovedať
Situácia normálna, všetko v hajzli.
Avatar
David Hartinger
Vlastník
Avatar
Odpovedá na wolf661
David Hartinger:5.7.2014 14:51

Kdyby vlastnost nebyla public, tak by ji deserializer těžko nastavil ;-)

Odpovedať
New kid back on the block with a R.I.P
Avatar
wolf661
Člen
Avatar
Odpovedá na David Hartinger
wolf661:9.7.2014 23:28

Aha tak preto diky.

Odpovedať
Situácia normálna, všetko v hajzli.
Avatar
Michal Žůrek - misaz:2.1.2015 14:22

Ona XML serializace je skutečně jen na takové drobky, zvykl jsem si používat binární serializaci a už vůbec nemusím řešit nějaké bezparametrické konstruktory, neschopnost serializovat Dictionary a podobné věcičky. Jen teda ten výsledek není moc lidem čitelný, ale to většinou nevadí.

Avatar
forcabarca
Člen
Avatar
forcabarca:29.1.2016 22:36

Chyba v přiloženém kódu, kopíruji to (tohle by se vážně asi stávat nemělo přikládat kód s chybou):
Warning 1 Could not write lines to file "obj\Debug\\Tem­poraryGenerated­File_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs". The specified path, file name, or both are too long. The fully qualified file name must be less than 260 characters, and the directory name must be less than 248 characters. SerializaceDe­serializace

Avatar
Jan Vargovský
Tvůrce
Avatar
Odpovedá na forcabarca
Jan Vargovský:29.1.2016 22:42

Kód je ok, jen jsem tam nechal i věci z kompilace. Si smaž složku obj a zkompiluj.

Avatar
Štěpán Wünsch:17.5.2016 12:41

Proč není Serializer generický? Pokud serializuju jiný typ, než ten, který předám v konstruktoru, tak vyvolá vyjímku. Je to tím, že byl zaveden dřív než genericita? A dá se nějak obejít nutnost porušit zapouzdření? Díky za odpověď

Avatar
Jan Vargovský
Tvůrce
Avatar
Odpovedá na Štěpán Wünsch
Jan Vargovský:17.5.2016 21:11

Můžeš to trošku rozvést? Instance serializeru je vázaná s typem, který budeš serializovat. Nemůžeš tam předat typ X a pak chtít po něm, aby serializoval typ Y.

Avatar
Odpovedá na Jan Vargovský
Štěpán Wünsch:18.5.2016 0:29

Hlavní otázka byla proč není Serializer generický, když se váže s typem. Přijde mi logičtější kdyby byl generický jako např. List<T>.

Při užití generické verze bych i ve Visual Studiu podle typu hned věděl, jaký typ serializuje. Připadá mi, že by generický byl lepší... Proto mě zajímá proč? Byly generické typy až v nějaké novější verzi? Nebo má třeba genericita v tomhle nějaká omezení?

Posledné komentáre sú na spodnej časti poslednej stránky.
Robíme čo je v našich silách, aby bola tunajšia diskusia čo najkvalitnejšia. Preto do nej tiež môžu prispievať len registrovaní členovia. Pre zapojenie sa do diskusie sa zaloguj. Ak ešte nemáš účet, zaregistruj sa, je to zadarmo.

Zobrazené 10 správy z 42.