powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Как сериализовать объект у которого в свойствах хранятся интерфейсы ?
3 сообщений из 3, страница 1 из 1
Как сериализовать объект у которого в свойствах хранятся интерфейсы ?
    #38381619
WebStudent
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет.

Есть простой класс, у которого имеется три открытых поля, в которых хранятся интерфейсы. Он сам даже не знает что под этими интерфейсами.

Класс помечен атрибутом [Serializable].
При этом, классы, которые скрываются в этих интерфейсах, тоже пометил атрибутом [Serializable].


При попытке создать XML-Cериализатор ругается

Код: c#
1.
XmlSerializer writer = new XmlSerializer(typeof(Myobj));



{"Невозможно сериализовать член Myobj.Field1 типа IFieldToCompute, т.к. он является интерфейсом."}


Как эту проблему обойти ?
Теоретически я конечно могу создать базовый класс, вместо интерфейса. Но не факт, что у меня будет родственная связь между классами. Т.е. мне, все же, нужен интерфейс.
...
Рейтинг: 0 / 0
Как сериализовать объект у которого в свойствах хранятся интерфейсы ?
    #38381659
WebStudent
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нашел решение

BinaryFormatter умеет сериализовать интерфейсы. Он просто сериализует сам класс, который скрывается под интерфейсом. Это легко увидеть, если открыть сохраненный файл в текстовом блокноте - там видны полные имена классов, которые сохранены.

Собственно, именно этого поведения я и ожидал от XML сериализатора.

Интересно, почему XMLSerializator не делает этого же. Раз бинарный это умеет делать, значит это возможно. Не понятно, какая религия запретила разработчикам добавить эту возможность в XMLSerializator.
...
Рейтинг: 0 / 0
Как сериализовать объект у которого в свойствах хранятся интерфейсы ?
    #38381692
Фотография buser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WebStudent...какая религия запретила разработчикам добавить эту возможность в XMLSerializator.
Это вопрос с собеседования
Пользуйтесь гуглом - он и поможет и объяснит :)
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Как сериализовать объект у которого в свойствах хранятся интерфейсы ?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]