Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/8: Рейтинг темы: голосов - 8, средняя оценка - 4.50
Мохаммед Али
 Аватар для asd321
131 / 70 / 5
Регистрация: 14.08.2009
Сообщений: 916

Не получается обратиться к объекту после десериализации

23.11.2010, 14:55. Показов 1695. Ответов 13
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
что такое?, не могу понять обьект нормально десериализовал а к его подобъектам обратиться не могу ,поставил паблики везде все равно не катит, в чем может быть проблема?.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
23.11.2010, 14:55
Ответы с готовыми решениями:

Не получается с вторичного потока обратиться напрямую к объекту из главного потока
Добрый день. Проблема заключается в том что не могу в WPF с вторичного потока обратится на прямую к объекту из главного потока. WPF пока...

Не получается написать метод десериализации
Есть класс: public class Person { public string Name { get; set; } public string Surname { get; set; } ...

Обратиться к объекту из метода
Здраствуйте! Есть 10 панелей-квадратов, по щелчку квадрат должен менять цвет на сохраненный в переменной thisColor. Хотел приписать общий...

13
 Аватар для kirill29
2098 / 1263 / 173
Регистрация: 01.02.2009
Сообщений: 2,842
23.11.2010, 15:07
Все зависит от того, какая структура объекта, который вы сериализовали.
Приведите код сериализуемых объектов, и код сериализации/десериализации.

Добавлено через 1 минуту
У вас все элементы помечены атрибутом [Serializable]?
0
Мохаммед Али
 Аватар для asd321
131 / 70 / 5
Регистрация: 14.08.2009
Сообщений: 916
23.11.2010, 15:17  [ТС]
неа не все.. щас .. токо класс основной
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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
using System;
using System.Collections;
using System.Collections.Generic;
using System.Text;
using System.Xml;
using System.Xml.Serialization;
 
namespace WorkWithXRIO
{
    [Serializable]
    public class Data_Xml
    {
        [NonSerialized]
        public ArrayList _Content;
        [XmlArray]
        [XmlArrayItem(typeof(Zone))]
        public IList Zones
        {
            get { return _Content; }
        }
        public Data_Xml() { }
        public class Zone
        {
            [NonSerialized]
            private string nname;
 
            [XmlAttribute(AttributeName = "ZoneName")]
            public string name
            {
                get { return nname; }
                set { nname = value; }
            }
 
            [NonSerialized]
            private string ttype;
 
            [XmlAttribute(AttributeName = "ZoneType")]
            public string type
            {
                get { return ttype; }
                set { ttype = value; }
            }
 
            [NonSerialized]
            private string cttype;
 
            [XmlAttribute(AttributeName = "CoordType")]
            public string ctype
            {
                get { return cttype; }
                set { cttype = value; }
            }
 
                [NonSerialized]
                public ArrayList _Content0 = new ArrayList();
 
                [XmlArray]
                [XmlArrayItem(typeof(Parameter))]
                public IList Parameters
                {
                    get { return _Content0; }
                }
            
                [NonSerialized]
                public ArrayList _Content = new ArrayList();
 
                [XmlArray]
                [XmlArrayItem(typeof(Point))]
                public IList ZonePoints
                {
                    get { return _Content; }
                }
 
                [NonSerialized]
                public ArrayList _Content1 = new ArrayList();
 
                [XmlArray]
                [XmlArrayItem(typeof(Point))]
                public IList InSidePoints
                {
                    get { return _Content1; }
                }
 
                [NonSerialized]
                public ArrayList _Content2 = new ArrayList();
 
                [XmlArray]
                [XmlArrayItem(typeof(Point))]
                public IList OffSidePoints
                {
                    get { return _Content2; }
                }
 
                public class Parameter
                {
                    [NonSerialized]
                    private string nname;
 
                    [XmlAttribute(AttributeName = "Name")]
                    public string name
                    {
                        get { return nname; }
                        set { nname = value; }
                    }
 
                    [NonSerialized]
                    private string vvalue;
 
                    [XmlAttribute(AttributeName = "Value")]
                    public string value
                    {
                        get { return vvalue; }
                        set { vvalue = value; }
                    }
 
                }
 
                public class Point
                {
 
                    [NonSerialized]
                    private string nname;
 
                    [XmlAttribute(AttributeName = "Num")]
                    public string name
                    {
                        get { return nname; }
                        set { nname = value; }
                    }
 
                    [NonSerialized]
                    private float xx;
 
                    [XmlElement(ElementName = "X")]
                    public float x
                    {
                        get { return xx; }
                        set { xx = value; }
                    }
                    
                    [NonSerialized]
                    private float yy;
 
                    [XmlElement(ElementName = "Y")]
                    public float y
                    {
                        get { return yy; }
                        set { yy = value; }
                    }
                }
 
              
 
            
 
 
        }
    }
}
Добавлено через 3 минуты
даже наоборот помечены нонсериализед из за этого в десериализованном обьекте может не видеть подобьекты?
щас поисправлял некоторые , мне кажется проблема не в этом ..
0
 Аватар для m0nax
1274 / 975 / 113
Регистрация: 12.01.2010
Сообщений: 1,971
23.11.2010, 17:39
ну во первых
[NonSerialized] и [Serializable] не имеют отношения к XML, это для BinaryFormatter

в случае xml вместо [NonSerialized] используется [XmlIgnore]
0
Мохаммед Али
 Аватар для asd321
131 / 70 / 5
Регистрация: 14.08.2009
Сообщений: 916
23.11.2010, 23:52  [ТС]
а в третьих так в чем же ошибка я не понимаю тут скорее всег овопрос не по десериалиции а по ооп, почему в некотором случае мы имеем обьект и его подобьекты а обратиться можем только к обьекту как осуществить доступ к подобьектам?
0
burning1ife
 Аватар для kenny69
1466 / 1287 / 294
Регистрация: 21.09.2008
Сообщений: 3,438
Записей в блоге: 9
24.11.2010, 03:30
а что ты хотел, если ты только объяевляешь новые классы внутри своего главного класса, а их экземпляры не создаешь... Как же он будет сериализовать то, чего нет...
1
Мохаммед Али
 Аватар для asd321
131 / 70 / 5
Регистрация: 14.08.2009
Сообщений: 916
24.11.2010, 12:55  [ТС]
Цитата Сообщение от kenny69 Посмотреть сообщение
а что ты хотел, если ты только объяевляешь новые классы внутри своего главного класса, а их экземпляры не создаешь... Как же он будет сериализовать то, чего нет...
как не создаю а массивы Content различные ,почему их не видно.
0
burning1ife
 Аватар для kenny69
1466 / 1287 / 294
Регистрация: 21.09.2008
Сообщений: 3,438
Записей в блоге: 9
24.11.2010, 13:13
лучше выложи свой проект,
1.потому что по твоему объявлению класса тяжело что-то сказать...

2.тут надо еще знать каким способом ты проводишь сериализацию, потому что у тебя тут атрибутов что просто ппц...

3.может быть еще ошибка в создании объекта, который ты сериализуешь
0
Мохаммед Али
 Аватар для asd321
131 / 70 / 5
Регистрация: 14.08.2009
Сообщений: 916
24.11.2010, 14:06  [ТС]
да кароче там сериализация еще хуже там вобще ничо не понять посторонним), так чтоя думаю легче тупо считать данные из файла вот его структура кому интересно
XML
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
35
<?xml version="1.0" encoding="utf-8"?>
<Data_Xml xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <Zones>
    <Zone ZoneName="Зона0"  CoordType="Decart">
      <Parameters>
       ...
      </Parameters>
      <ZonePoints>
        <Point Num="0">
          <X>49.5608063</X>
          <Y>13.85202</Y>
        </Point>
....
        <Point Num="70">
          <X>49.5608063</X>
          <Y>6.42199326</Y>
        </Point>
      </ZonePoints>
      <InSidePoints>
        <Point Num="0">
          <X>61.12428</X>
          <Y>14.8636932</Y>
        </Point>
...
        </InSidePoints>
      <OffSidePoints>
        <Point Num="70">
          <X>37.9973373</X>
          <Y>7.43366575</Y>
        </Point>
...
      </OffSidePoints>
    </Zone>
  </Zones>
</Data_Xml>
0
burning1ife
 Аватар для kenny69
1466 / 1287 / 294
Регистрация: 21.09.2008
Сообщений: 3,438
Записей в блоге: 9
24.11.2010, 15:53
Вместо XmlArrayItem поставьте XmlElement("Content")
0
Мохаммед Али
 Аватар для asd321
131 / 70 / 5
Регистрация: 14.08.2009
Сообщений: 916
24.11.2010, 16:08  [ТС]
Цитата Сообщение от kenny69 Посмотреть сообщение
Вместо XmlArrayItem поставьте XmlElement("Content")
каким образом как тогда массив будет знать какой тип данных в нем XmlArrayItem(typeof(Zone))
кароче рубил с плеча)
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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
 var xmlDoc = new XmlDocument();
                    xmlDoc.Load(FileName);
 
                    int zonec = 0;
                    foreach (XmlNode node in xmlDoc.SelectNodes("//Zone"))
                    {
                        zonec++;
                    }
                    ZoneData = new ZoneInfo(zonec);
                    int zonei = 0;
                    foreach (XmlNode node in xmlDoc.SelectNodes("//Zone"))
                    {
                        int zpi = 0, zii = 0, zoi = 0;
                        foreach (XmlNode nnode in node.SelectNodes("//Zone/ZonePoints"))
                        {
                            ZoneData.FI[zonei] = new FigureInfo(nnode.SelectNodes("//Zone/ZonePoints/Point").Count);
                            foreach (XmlNode nnnode in nnode.SelectNodes("//Zone/ZonePoints/Point"))
                            {
                                foreach (XmlNode nnnnode in nnnode.SelectNodes("//Zone/ZonePoints/Point/X"))
                                {
                                    ZoneData.FI[zonei].Info[zpi].begX = (float)Convert.ToDouble(nnnnode.InnerText.Replace(".", ","));
                                }
                                foreach (XmlNode nnnnode in nnnode.SelectNodes("//Zone/ZonePoints/Point/Y"))
                                {
                                    ZoneData.FI[zonei].Info[zpi].begY = (float)Convert.ToDouble(nnnnode.InnerText.Replace(".", ","));
                                }
                                zpi++;
 
                            }
                           
                        }
 
                        foreach (XmlNode nnode in xmlDoc.SelectNodes("//Zone/InSidePoints"))
                        {
 
                            foreach (XmlNode nnnode in nnode.SelectNodes("//Zone/InSidePoints/Point"))
                            {
                                foreach (XmlNode nnnnode in nnnode.SelectNodes("//Zone/InSidePoints/Point/X"))
                                {
                                    ZoneData.FI[zonei].Info[zii].begXin = (float)Convert.ToDouble(nnnnode.InnerText.Replace(".", ","));
                                }
                                foreach (XmlNode nnnnode in nnnode.SelectNodes("//Zone/InSidePoints/Point/Y"))
                                {
                                    ZoneData.FI[zonei].Info[zii].begYin = (float)Convert.ToDouble(nnnnode.InnerText.Replace(".", ","));
                                }
 
                                zii++;
                            }
                           
 
                        }
 
                        foreach (XmlNode nnode in xmlDoc.SelectNodes("//Zone/OffSidePoints"))
                        {
 
                            foreach (XmlNode nnnode in nnode.SelectNodes("//Zone/OffSidePoints/Point"))
                            {
                                foreach (XmlNode nnnnode in nnnode.SelectNodes("//Zone/OffSidePoints/Point/X"))
                                {
                                    ZoneData.FI[zonei].Info[zoi].begXout = (float)Convert.ToDouble(nnnnode.InnerText.Replace(".", ","));
                                }
                                foreach (XmlNode nnnnode in nnnode.SelectNodes("//Zone/OffSidePoints/Point/Y"))
                                {
                                    ZoneData.FI[zonei].Info[zoi].begYout = (float)Convert.ToDouble(nnnnode.InnerText.Replace(".", ","));
                                }
                                zoi++;
                            }
                           
 
                        }
                        zonei++;
                    }
0
burning1ife
 Аватар для kenny69
1466 / 1287 / 294
Регистрация: 21.09.2008
Сообщений: 3,438
Записей в блоге: 9
24.11.2010, 16:17
[XmlElement("Zone", typeof(Zone))]
0
Мохаммед Али
 Аватар для asd321
131 / 70 / 5
Регистрация: 14.08.2009
Сообщений: 916
24.11.2010, 16:22  [ТС]
не катит..
0
24.11.2010, 16:46

Не по теме:

Программирую методом паутины... это уж точно)

1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
24.11.2010, 16:46
Помогаю со студенческими работами здесь

Обратиться к объекту по строке
Не знаю как правильно сформулировать вопрос, допустим есть несколько кнопок (Button1,Button2 и т.д.): мне нужно узнать их тег в...

Обратиться к объекту по индексу
Такая ситуация: есть три массива Label1(),Label2() ,Label3() 1.Как сделать чтобы цифры 1,2,3 заменить в Label &amp; 1 и т.п. ..2..3 и...

Как обратиться к объекту?
print_r($this-&gt;pagination_obj) выдает JPagination Object ( =&gt; 3 =&gt; 3 =&gt; 7 =&gt; =&gt; =&gt;...

Как обратиться к объекту?
Всем привет! y меня есть название объекта к которомy я хочy обратиться. string sname = &quot;textBox&quot; + Convert.ToString(i); ...

Как можно обратиться к объекту
ребят, подскажите) К объекту текущей формы можно обратиться ....(выбрать несколько ответов): .цена Dim rst as recordset . цена ...


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

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Новые блоги и статьи
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru