Подскажите плз по C# XML сериализация странное исключение Добрый день. При попытке выполнить вот такой код private void exportNetToXMLToolStripMenuItem_Click(object sender, EventArgs e) ** saveFileDialog1.Title = "Сохранение нейросети..."; saveFileDialog1.Filter = "Файлы XML|*.xml|Все файлы|*.*"; XmlSerializer xml = new XmlSerializer(typeof(NeuralNetwork)); if (saveFileDialog1.ShowDialog() == DialogResult.OK) ** StreamWriter sw = new StreamWriter(saveFileDialog1.FileName, false, Encoding.Default); xml.Serialize(sw, _network); sw.Close(); ** ** На строке XmlSerializer xml = new XmlSerializer(typeof(NeuralNetwork)); выскаивает исключение: **"Требуется реализовать для System.Collections.Generic.LinkedList`1[[NeuralNetwork.NeuralLayer, NeuralNetwork, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]] функцию доступа по умолчанию, т.к. он наследуется из ICollection."** Подскажите плз, как лечить? |
я как бы вообще ни в C#, но подозреваю, что вы должны были определить для объекта который собираетесь сериализовать метод который отвечает за собственно сериализацию. хотя может C# как то сам догадывается как у вас объект устроен, хз. |
За сериализацию по идее отвечает атрибут [Serializable] класса NeuralNetwork. Только неизвестно, задан ли у автора этот атрибут... |
2, вообще атрибут [Serializable] задан. Чтения и запись в бинарники отлично работает. Все проблемы начинаються с XML. И, к сожалению, XML все таки нужно, так как я планирую сделать рефакторинг программы, в частности, многие классы выделить в отлеьную библиотеку dll (они будут использованы в дургих проектах). Такми образом, классы типа NeuralNetwork во первыхх, доложны будут открываться в других проетах, а во вторых, мне придется конверировать старыте сохраненные объекты в новый формат, так как после того как я перенесу NeuralNetwork в длл-ку, то сохраненные ранее данныые не будут загружаться в програму. Думал, смогу перенести их при помощи XML, Но хз, может, стоит посмотреть в другую сторону? |
[url]http://stackoverflow.com/questions/2483268/linkedlist-cannot-be-serialised[/url] |
Текущее время: 03:30. Часовой пояс GMT +3. |