|
Тема
|
Сериализация
|
|
Автор | NetDev (Нерегистриран) |
Публикувано | 19.10.04 15:06 |
|
Някой опитвал ли е да сериализира System.Exception - обект? Как избегнахте проблема със свойството TargetSite? И изобщо какъв е смисъла един клас да имплементира ISerializable, ако за да можеш да го сериализираш, трябва да "надлъгваш" 
| |
Тема
|
Re: Сериализация
[re: NetDev]
|
|
Автор | sa4ma (Нерегистриран) |
Публикувано | 25.10.04 16:44 |
|
Принципно всичко си работи както трябва и аз не съм срещал проблем. Може да бъркаш нещо, постни част от Exception класа.
| |
|
Официално не знам Майкрософт да са признали за този проблем, но скоро ще трябва да се примирят и да извадят някакво решение. Точната грешка е тази:
The property 'TargetSite' on type 'System.Exception' cannot be serialized
because it is decorated with declarative security permission attributes.
Consider using imperative asserts or demands in the property accessors.
Не ми е много ясно какво точно означава това, но според мене проблема е другаде. TargetSite ти връща метода който е генерирал exception от stack-а. Това добре, ама ако метода който е хвърлил exception не е в твоя стек, тогава TargetSite е NULL и сериализацията се прецаква. Примерно, ако application domain A хвръли exception който се хване в application domain B, ще получиш точно същата грешка при сериализация.
За решение, трудно. Може да пробваш да override сериализацията и да проверяваш за null. Или просто трябва да промениш изцяло логиката на exception reporting в твоя случай.
XM TurboCT .. where comfort meets power
| |
Тема
|
Re: Сериализация
[re: NetDev]
|
|
Автор | NetDev (Нерегистриран) |
Публикувано | 26.10.04 09:29 |
|
Благодаря за препоръките, надявам се да са от полза. По отношение на това как да избегна проблема - оказа се, че проблемът е само при ползване на XmlSerializer. Аз го заобиколих като ползвах Binary-сериализация.
| |
|
опитът ми показва, че вградената xml сериализация е супер зле. тва дето си направил е решение, ако ексепшъна ше пътува по нета може да го сериализираш в SOAP (сигурно ше мине), а принципно ако ти трябва непременно читаема XML сериализация, тряаа си го напишеш с XmlReader и XmlWriter ... верно че повече писане, ма пък става :)
Благородникът има само една дума и аз ви дадох своята
| |
|
|
|
|