| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Общие вопросы по .NET и C# > Сериализация |
| Автор: STRELOKBMSTU 25.12.2009, 14:11 | ||||
Есть собственный класс:
при попытке его сериализации XmlSerializer'ом вылетает Exception:
Может каким-нибудь атрибутом пометить эндпоинт или еще что-то сделать, чтоб его засериализовать??? |
| Автор: tol05 25.12.2009, 14:18 |
| можно непосредственно реализовать интерфейс ISerializable и в нем вручную серилизовывать\десерилизовывать это поле второй вариант - задать тип свойства строка, наример, а в get\set преобразовывать сроку в IPEndPoint и обратно |
| Автор: STRELOKBMSTU 25.12.2009, 14:56 |
| Погодь, что-то не до конца понял... Второй метод вроде попроще, но у свойства получается должен быть всегда тип string??? Можно поподробнее, если получится, с кодом? |
| Автор: tol05 25.12.2009, 15:19 | ||||||
даже кода не нужно. Вам со свойством
Ну так сделайте два свойства. Одно с типом string - для серилизации\десерилизации, а второе (с аттрибутом XmlIgnore) - для работы. оба свойтсва будут работать с одним и тем же полем
...
|
| Автор: STRELOKBMSTU 25.12.2009, 15:30 |
| Вот, добрались до атрибутов, с утра по ним инфу копаю, у меня нету [XmlIgnore]... Как его подключить, в каком он namespace? |
| Автор: tol05 25.12.2009, 15:33 |
| System.Xml.Serialization странно. как Вы с XmlSerializer работаете тогда? он в том же намеспейсе находится. |
| Автор: STRELOKBMSTU 25.12.2009, 17:08 | ||
| Пасиб, в классе не использовал этот наймспейс. А private поля тоже сериализуются? Сейчас у меня код выглядит так, но значение не передается все равно...
|
| Автор: tol05 25.12.2009, 17:59 | ||
| Серилизатор XML серилизует только public члены класса, и только те, которые не помечены аттрибутом [XmlIgnore] Я не вижу второго свойства, о котором мы говорили. Где оно? вот код, короче
|
| Автор: STRELOKBMSTU 25.12.2009, 18:06 | ||
В интернете почитал вроде как для сериализации EndPoint используется тип SocketAddress, но с ним те же косяки были... пробовал так:
но с ним те же проблемы были, сейчас попробую ваш метод, надеюсь поможет... |
| Автор: Heinzz 25.12.2009, 18:09 |
нет |