Ребят, хотел сохранить экземпляр класса в файл и решил воспользоваться бинарной сериализацией.
...
Network net = new Network();
net.LearnAndPredict();
WorkingWithNet Session = new WorkingWithNet();
FileStream str = new FileStream(net.NetName,FileMode.CreateNew,FileAccess.ReadWrite);
BinaryFormatter formater = new BinaryFormatter();
formater.Serialize(str,net);
...
На выполнении последней строки процитированного кода, вылетает ошибка:
An unhandled exception of type 'System.Runtime.Serialization.SerializationException' occurred in mscorlib.dll
Additional information: Type 'System.IO.FileStream' in Assembly 'mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' is not marked as serializable.
Объяснить, пожалуйста, что я сделал не так. Файл создается. Библиотека подключил:
using System.Runtime.Serialization.Formatters.Binary;
using System.Runtime.Serialization;
Здравствуйте, Code, Вы писали:
C>Ребят, хотел сохранить экземпляр класса в файл и решил воспользоваться бинарной сериализацией. C> ... C> Network net = new Network(); C> net.LearnAndPredict();
C> WorkingWithNet Session = new WorkingWithNet();
C> FileStream str = new FileStream(net.NetName,FileMode.CreateNew,FileAccess.ReadWrite); C> BinaryFormatter formater = new BinaryFormatter();
C> formater.Serialize(str,net); C> ... C>На выполнении последней строки процитированного кода, вылетает ошибка:
C>An unhandled exception of type 'System.Runtime.Serialization.SerializationException' occurred in mscorlib.dll
C>Additional information: Type 'System.IO.FileStream' in Assembly 'mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' is not marked as serializable.
C>Объяснить, пожалуйста, что я сделал не так. Файл создается. Библиотека подключил: C>using System.Runtime.Serialization.Formatters.Binary; C>using System.Runtime.Serialization;
C>Что я сделал неверно?
Здравствуйте, curt_russel, Вы писали:
_>мда, а интерфейс ISerializable наследуется?
_>Здравствуйте, Code, Вы писали:
C>>Ребят, хотел сохранить экземпляр класса в файл и решил воспользоваться бинарной сериализацией. C>> ... C>> Network net = new Network(); C>> net.LearnAndPredict();
C>> WorkingWithNet Session = new WorkingWithNet();
C>> FileStream str = new FileStream(net.NetName,FileMode.CreateNew,FileAccess.ReadWrite); C>> BinaryFormatter formater = new BinaryFormatter();
C>> formater.Serialize(str,net); C>> ... C>>На выполнении последней строки процитированного кода, вылетает ошибка:
C>>An unhandled exception of type 'System.Runtime.Serialization.SerializationException' occurred in mscorlib.dll
C>>Additional information: Type 'System.IO.FileStream' in Assembly 'mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' is not marked as serializable.
C>>Объяснить, пожалуйста, что я сделал не так. Файл создается. Библиотека подключил: C>>using System.Runtime.Serialization.Formatters.Binary; C>>using System.Runtime.Serialization;
C>>Что я сделал неверно?
А пытаюсь воспользоваться стандартныс сериализатором. Для этого мне обязательно Наследовать интерфейс ISerializable ? Если да, то объяснитьте пожалуйста каким образом это правильно реализовать в самом простом виде.
C>Additional information: Type 'System.IO.FileStream' in Assembly 'mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' is not marked as serializable.
Гидето глюбако в нутрях Класса Network (Вашь ведь, правда?) сидит поле с типом System.IO.FileStream (про что вам и указали) пометте это поле атрибутом [NonSerialized] и все должно пройти.
Здравствуйте, vitz, Вы писали:
V>Здравствуйте, Code, Вы писали:
C>>Additional information: Type 'System.IO.FileStream' in Assembly 'mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' is not marked as serializable. V>Гидето глюбако в нутрях Класса Network (Вашь ведь, правда?) сидит поле с типом System.IO.FileStream (про что вам и указали) пометте это поле атрибутом [NonSerialized] и все должно пройти.
Огромное спасибо за help, я только начинаю осваивать язык и его принципы взаимодействия с внешней средой и не знал, что поля FileStream нельзя сериализовывать. Скажите пожалуйста, а где можно узнать про список сериализуемых и несериализуемых классов, чтобы не попасть на такой подводный камень?
Здравствуйте, Code, Вы писали:
C>Огромное спасибо за help, я только начинаю осваивать язык и его принципы взаимодействия с внешней средой и не знал, что поля FileStream нельзя сериализовывать. Скажите пожалуйста, а где можно узнать про список сериализуемых и несериализуемых классов, чтобы не попасть на такой подводный камень?
Если у вас установлен MSDN то там в описании класса присутствует часть его декларации в которой указаны
Атрибуты
Интерфейсы реализуемые классом и предок (наследоваение)
и т.д. типа
[ComVisibleAttribute(true)]
public class FileStream : Stream
Здравствуйте, vitz, Вы писали:
V>Здравствуйте, Code, Вы писали:
C>>Огромное спасибо за help, я только начинаю осваивать язык и его принципы взаимодействия с внешней средой и не знал, что поля FileStream нельзя сериализовывать. Скажите пожалуйста, а где можно узнать про список сериализуемых и несериализуемых классов, чтобы не попасть на такой подводный камень? V>Если у вас установлен MSDN то там в описании класса присутствует часть его декларации в которой указаны V>Атрибуты V>Интерфейсы реализуемые классом и предок (наследоваение) V>и т.д. типа
V>
V>
V>[ComVisibleAttribute(true)]
V>public class FileStream : Stream
V>
Да, установлен. А какой атрибут или свойство отвечает за это качество (сериализовываемость))?