Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как выделить память, под n объектов 1ого типа 
V
    Опции темы
Malish
Дата 12.3.2008, 18:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 66
Регистрация: 18.2.2006

Репутация: нет
Всего: нет



Есть XML документ, в котором описанно произвольное количество объектов Class1, Class2, ..., ClassN
Код

<Item type="Class1">
...
</Item>
<Item type="Class1">
...
</Item>
<Item type="Class2">
...
</Item>


Код

public XmlTextReader reader = new XmlTextReader("XML.xml");
public Class1 class1 = new Class1();
public List<Class1> ListClass1 = new List<Class1>();

public void ReadXML()
        {
            while (reader.Read())
            {
                if (reader.GetAttribute("type") == "Class1")
                {
                    class1.ReadXML(reader); // считывает содержимое
                    Class1 CLASS1 = new Class1();
                    CLASS1 = class1;
                    ListClass1.Add(CLASS1);
                }
              reader.Close();
           }


Получается так, что каждая ячейка контейнера хранит в себе экземпляр Class1, который был описан в XML документе последним.

Подскажите, как сделать так, что бы в контейнере хранились все экземпляры Class1, описанные в XML документе.
PM MAIL   Вверх
MFSham
Дата 12.3.2008, 19:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 220
Регистрация: 28.8.2005
Где: Беларусь, Гродно

Репутация: нет
Всего: 3



А может так:
Код

public XmlTextReader reader = new XmlTextReader("XML.xml");
public List<Class1> ListClass1 = new List<Class1>();
public void ReadXML()
        {
            while (reader.Read())
            {
                if (reader.GetAttribute("type") == "Class1")
                {                    
                    Class1 CLASS1 = new Class1();
                    CLASS1.ReadXML(reader);                    
                    ListClass1.Add(CLASS1);
                }
              reader.Close();
           }


У тебя просто получается, что ты объявляешь class1
Код

public Class1 class1 = new Class1();

Пользовательские классы - ссылочный тип. Т.е. class1 - это некая ссылка.
А потом ты каждый раз добавляешь "как бы новый объект", который ссылается на class1. 
Вот и получается, что последняя ссылка, это твой последний элемент описанный в XML.
--------------------
Без ветра трава неподвижна. Без программ компьютеры бесполезны.
PM MAIL   Вверх
Malish
Дата 12.3.2008, 21:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 66
Регистрация: 18.2.2006

Репутация: нет
Всего: нет



спасибо MFSham.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
Partizan
PashaPash

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, Partizan, PashaPash.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | .NET для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0576 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.