Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.92/13: Рейтинг темы: голосов - 13, средняя оценка - 4.92
1 / 1 / 3
Регистрация: 08.06.2012
Сообщений: 28

Ошибка InvalidOperationException при Xml сериализации

06.12.2012, 17:56. Показов 2761. Ответов 5

Студворк — интернет-сервис помощи студентам
Здравствуйте!
У меня возникла проблема при xml сериализации. Суть проблемы такова, я хочу сохранить список List<myReference> в xml файл, но вылетает вот такая ошибка InvalidOperationException. Что делать с ней не знаю, класс myReference помечен
атрибутом Serializable и есть конструктор по умолчанию.
Вот код сериализации:
C#
1
2
3
4
5
6
7
8
9
10
    
               string siteName = textBox1.Text;
                Uri siteURL = new Uri(textBox2.Text);
                string student = comboBox1.SelectedItem.ToString();
                siteList.Add(new myReference(siteName,siteURL,student));
                // сериализация
                Stream st = new FileStream("data.xml", FileMode.Create, FileAccess.Write, FileShare.None);
                XmlSerializer xs = new XmlSerializer(typeof(List<myReference>));
                xs.Serialize(st, siteList);
                st.Close();
Код класса myReference:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
    [Serializable]
    public class myReference
    {
        // название сайта
        private string siteName;
        public string SiteName
        {
            get { return siteName; }
            set { siteName = value; }
        }
        // ссылка на сайт
        private Uri siteURL;
        public Uri SiteURL
        {
            get { return siteURL; }
            set { siteURL = value; }
        }
        // студент
        private string student;
        public string Student
        {
            get { return student; }
            set { student = value; }
        }
        // конструктор по умолчанию
        public myReference() { }
        // инициализирующий конструктор
        public myReference(string psiteName, Uri psiteURL, string psudent)
        {
            SiteName = psiteName;
            SiteURL = psiteURL;
            Student = psudent;
        }
    }
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
06.12.2012, 17:56
Ответы с готовыми решениями:

Исключение InvalidOperationException при XML сериализации
При выполнении вот такого кода XmlSerializer xml = new XmlSerializer(typeof(NeuralNetwork)); выдает исключение ...

Возникла ошибка при отражении типа во время XML сериализации
В строке using (Stream Read = File.Create(FileName)) { FilialList = new...

Комментарии при сериализации класса в xml
Здравствуйте. Вот я делаю серилизацию таким образом public bool SaveSettings() { try { ...

5
Эксперт .NET
 Аватар для kolorotur
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
06.12.2012, 18:11
Здравствуйте!

1. При использовании класса XmlSerializer атрибут Serializable не нужен.
2. При вылете InvalidOperationException смотрите свойство InnerException - там будут детали
3. В вашем случае, скорее всего, проблема в свойстве SiteURL: у класса Uri нет дефолтного конструктора, необходимого для сериализации в Xml.
0
Заблокирован
06.12.2012, 18:20
kolorotur, а Вы не правы.
C#
1
2
3
[SerializableAttribute]
[TypeConverterAttribute(typeof(UriTypeConverter))]
public class Uri : ISerializable
http://msdn.microsoft.com/ru-r... m.uri.aspx
0
1 / 1 / 3
Регистрация: 08.06.2012
Сообщений: 28
06.12.2012, 18:30  [ТС]
kolorotur, спасибо большое, поменял тип поля siteURL на string - все заработало
но adm_loro теперь ввел меня в замешательство
0
Заблокирован
06.12.2012, 18:37
System.Uri cannot be serialized because it does not have a parameterless constructor."
Беру свои слова обратно, падает именно из-за этого.
0
07.12.2012, 00:59

Не по теме:

Цитата Сообщение от adm_loro Посмотреть сообщение
а Вы не правы.
Если не прав - вы хоть пиште в чем, или часть текста цитируйте, в которой не прав.
А то сиди и гадай потом - где косяк :(

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
07.12.2012, 00:59
Помогаю со студенческими работами здесь

Как избавиться от мусора при XML сериализации?
Добрый день. Ситуация такая. Есть класс содержащий список определённых свойств. Программа имеет возможность загрузки их из XML и,...

DataContractSerializer при xml сериализации затрагивает игнорируемые поля
Привет всем. Вот класс, который я сериализую: public class FileMetaInfo { public string Hash {...

При распараллеливании foreach ошибка System.InvalidOperationException
Здраствуйте. Провожу сейчас распараллеливание алоритма поиска ассоциативных правил Есть код. public void FindCandidates() ...

Ошибка при сериализации
При компиляции вылетает такая ошибка: Cannot create and instance of the abstract class or interface &quot;System.Xml.XmlWriter&quot;. ...

Ошибка при сериализации
случилось у меня такая ситуация, что есть у меня класс, который я успешно сериализовал, после изменений в проекте (без изменений этого...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Подключение Box2D v3 к SDL3 для Android: физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru