![]() |
Внимание, важное сообщение: Дорогие Друзья!
В ноябре далекого 2001 года мы решили создать сайт и форум, которые смогут помочь как начинающим, так и продвинутым пользователям разобраться в операционных системах. В 2004-2006г наш проект был одним из самых крупных ИТ ресурсов в рунете, на пике нас посещало более 300 000 человек в день! Наша документация по службам Windows и автоматической установке помогла огромному количеству пользователей и сисадминов. Мы с уверенностью можем сказать, что внесли большой вклад в развитие ИТ сообщества рунета. Но... время меняются, приоритеты тоже. И, к сожалению, пришло время сказать До встречи! После долгих дискуссий было принято решение закрыть наш проект. 1 августа форум переводится в режим Только чтение, а в начале сентября мы переведем рубильник в положение Выключен Огромное спасибо за эти 24 года, это было незабываемое приключение. Сказать спасибо и поделиться своей историей можно в данной теме. С уважением, ваш призрачный админ, BigMac... |
|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » .NET - XML сериализация массива объектов |
|
.NET - XML сериализация массива объектов
|
Ветеран Сообщения: 1384 |
Здравствуйте.
Тут я задавал вопрос о конструкторе класса. Сейчас проблема немного другая. Есть несколько классов (LineIO, Rel, Adc), которые отдельно друг от друга нормально сериализуются в вид XML. Есть класс который называется Module, полями которого являются вышеописанные классы. У него есть конструктор без аргументов. public Module() { _lineIO = new LineIO[19]; for (int i = 0; i <= _lineIO.Length - 1; i++) { lineIO[i] = new LineIO(); } _rel = new Rel[5]; for (int i = 0; i <= _rel.Length - 1; i++) { _rel[i] = new Rel(); } _adc = new Adc[5]; for (int i = 0; i <= _adc.Length - 1; i++) { _adc[i] = new Adc(); } } ![]() Понять из-за чего всё это происходит я не смог. Для теста сделал похожий класс состоящий из массива целых чисел. public class test { private int[] ttt; public int[] T { get { return ttt; } set { ttt = value; } } public test() { ttt = new int[5]; for (int i = 0; i < ttt.Length; i++) { ttt[i] = 0; } } } Подскажите пожалуйста где я недоглядел. |
|
------- Отправлено: 13:00, 02-07-2012 |
Разный Сообщения: 1294
|
Профиль | Отправить PM | Цитировать не удается воспроизвести ошибку
можете сделать минимальный проект с ошибкой? |
Отправлено: 03:09, 03-07-2012 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 1384
|
Профиль | Отправить PM | Цитировать ferget, Удалось создать минимальный проект с ошибкой. В классе Module должны быть поля двух классов (в примере LineIO, Rel)
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.IO; using System.Xml.Serialization; namespace test_module { class Program { static void Main(string[] args) { Module Mod = new Module(); XmlSerializer ModSer = new XmlSerializer(Mod.GetType()); using (StreamWriter ModSw = File.CreateText("Mod.txt")) { ModSer.Serialize(ModSw, Mod); } } } public class LineIO { public enum direct { Out = 0, In = 1, }; private direct _dir; public enum state { _0, _1, } private state _state; public direct Direct { get { return _dir; } set { _dir = value; } } public state State { get { return _state; } set { _state = value; } } public LineIO() { _state = state._0; _dir = direct.Out; } } public class Rel { public enum state { _0, _1, } private state _state; public state State { get { return _state; } set { _state = value; } } public Rel() { _state = state._0; } } public class Module { private LineIO[] _lineIO; public LineIO[] lineIO { get { return _lineIO; } set { _lineIO = value; } } private Rel[] _rel; public Rel[] rel { get { return _rel; } set { _rel = value; } } public Module() { _lineIO = new LineIO[19]; for (int i = 0; i < _lineIO.Length; i++) { lineIO[i] = new LineIO(); } _rel = new Rel[5]; for (int i = 0; i < _rel.Length; i++) { _rel[i] = new Rel(); } } } }
|
------- Последний раз редактировалось Tonny_Bennet, 03-07-2012 в 09:46. Отправлено: 09:32, 03-07-2012 | #3 |
Разный Сообщения: 1294
|
Профиль | Отправить PM | Цитировать читаем ошибку
Цитата:
и все работает |
|
Отправлено: 02:19, 04-07-2012 | #4 |
Ветеран Сообщения: 1384
|
Профиль | Отправить PM | Цитировать ferget, спасибо поправил - заработало. Проблема как вы и сказали заключалась в уникальности полей XML документа.
|
|
------- Отправлено: 11:53, 04-07-2012 | #5 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
VBA - Проблема с использованием объектов в VB | Medic84 | Программирование и базы данных | 0 | 19-12-2010 19:10 | |
Лесенка на границах объектов | Den47 | Видео и аудио: обработка и кодирование | 7 | 04-06-2009 21:01 | |
VBS/WSH/JS - WSH + FSO - поиск объектов по каталогам | dsa | Программирование и базы данных | 4 | 25-08-2008 20:18 | |
JS:Описание объектов и их свойств | Guest | Вебмастеру | 4 | 10-10-2004 14:17 | |
Перечисление объектов типов | vasketsov | Программирование и базы данных | 3 | 24-04-2002 17:32 |
|