Страница: 1 |
Страница: 1 |
Вопрос: сериализация класса, с полем as image
Добавлено: 22.08.11 17:47
Автор вопроса: DimBi
Если инициирую экземпляр класса вот так:
Dim newRecord As myRecord
newRecord = New myBook.myRecord(TxtName.Text, TxtPhone.Text, TxtAddress.Text, System.Drawing.Image.FromFile("C:\fototest\hrist.jpg"))
newBook.AddRecord(newRecord)
Сериализация и обратно - проходят отлично.
Но мне надо сохранить image загруженный в picturebox.
пробовал так:
Dim newRecord As myRecord
Dim newImage As Image = PictureBoxFoto.Image
newRecord = New myBook.myRecord(TxtName.Text, TxtPhone.Text, TxtAddress.Text, newImage)
newBook.AddRecord(newRecord)
- не получается...
Класс инициируется без проблем, а во время сериализации возникает ошибка:
где я ошибаюсь? Как исправить?
Ответы
Всего ответов: 4
Номер ответа: 1
Автор ответа:
DimBi
Вопросов: 15
Ответов: 55
Профиль | | #1
Добавлено: 22.08.11 23:53
... решил по другому:
Теперь последующая сериализация успешна.
Так и не понял, почему image не сериализуется, если брать его напрямую из picturebox?
сериализовал так:
Номер ответа: 2
Автор ответа:
DimBi
Вопросов: 15
Ответов: 55
Профиль | | #2
Добавлено: 26.08.11 21:27
Разобрался!
В сериализованном классе обязательно должен быть открытый конструктор без параметров:
Номер ответа: 3
Автор ответа:
Artyom
Разработчик
Вопросов: 130
Ответов: 6602
Профиль | | #3
Добавлено: 27.08.11 01:27
А при чем тут тогда ошибка GDI+ общего вида?
Я похожую ошибку получал когда пытался сохранить jpeg в поток, не поддерживающий операцию seek.
Номер ответа: 4
Автор ответа:
DimBi
Вопросов: 15
Ответов: 55
Профиль | | #4
Добавлено: 27.08.11 12:48
Вот этого я не знаю...
В моем классе был конструктор с параметрами и не было конструктора без параметров.
Сначала я не обратил на это внимания и image не хотел сериализоваться.
Написал сюда, но никто не ответил.
В MSDN http://msdn.microsoft.com/ru-ru/library/ms172872.aspx про чтетие из XML-файла,
нашел вот что:
В сериализованном классе нет открытого конструктора без параметров.
Данные в файле не являются данными из класса, который был десериализован.
Файл не существует (IOException).
Решил попробовать добавить конструктор без параметров... И получилось!