Ручная сериализация - указание версии типа
От: xptr http://leadercom.ru
Дата: 06.12.08 07:23
Оценка:
День дорбрый,

обратил внимание на такую особеность при реализации сериализации (ISerializable) получаем следующие данные:

...
<PeriodType xsi:type="a2:PeriodsTypes" xmlns:a2="http://schemas.microsoft.com/clr/nsassem/LeaderCom.Res1/LeaderCom.Res1%2C%20Version%3D2.5.3262.16864%2C%20Culture%3Dneutral%2C%20PublicKeyToken%3D787e17034c0df816">Hour</PeriodType>
<ThreadPriority xsi:type="a3:ThreadPriority" xmlns:a3="http://schemas.microsoft.com/clr/ns/System.Threading">BelowNormal</ThreadPriority>
...

Смысл в чем: в том что для перечисления System.Threading.ThreadPriority
тип указывается только указанием имени типа,
а для своего типа LeaderCom.Res1.PeriodsTypes указывается полное название сборки включая версию, культуру и т.д.

Соответствено при изменении верии сборки LeaderCom.Res1 десериализация уже не проходит, потому что не удается найти сборку указаной версии.

Можно конечно написать свой SerializationBinder, но зачем???

Как сериализовать свои типы без указания версий сборки (наподобе System.Threading.ThreadPriority) ???

Думал дело решается параметрами форматера или атрибутами (сборки, типа) — ничего не нашел.
сериализация
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.