Страница: 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).
Решил попробовать добавить конструктор без параметров... И получилось!