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

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

23.11.2010, 14:55. Показов 1685. Ответов 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
Ответ Создать тему
Новые блоги и статьи
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Ниже машинный перевод статьи The Thinkpad X220 Tablet is the best budget school laptop period . Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы,. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru