Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.64/47: Рейтинг темы: голосов - 47, средняя оценка - 4.64
11 / 11 / 0
Регистрация: 17.01.2013
Сообщений: 504

Преобразовать Node в строку и наоборот

05.03.2013, 20:46. Показов 9412. Ответов 119
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
имеется класс
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
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace CustomTree
{
    public class Node
    {
        public Node()
        {
            _children = new NodeCollection(this);
        }
        public Node(string name)
        {
            _children = new NodeCollection(this);
            this.Name = name;
        }
        public Node AddNode(string name)
        {
            var rv = new Node(name);
            this.Children.Add(rv);
            return rv;
        }
        Node _parent;
        public Node Parent
        {
            get
            {
                return _parent;
            }
            set
            {
                if (Parent != null || value == null)
                {
                    Parent.Children.Remove(this);
                }
                else
                {
                    value.Children.Add(this);
                }
                _parent = value;
            }
        }
        public string Name { get; set; }
        NodeCollection _children;
        public override string ToString()
        {
            var rv = new StringBuilder(Name);
            foreach (Node ch in Children)
            {
                SubNodeToString(ch, rv);
            }
            return rv.ToString();
        }
        public int Level
        {
            get
            {
                return Parent != null ? this.Parent.Level + 1 : 0;
            }
        }
        void SubNodeToString(Node n, StringBuilder sb)
        {
            sb.Append("\n" + repeat("\t", n.Level));
            sb.Append(n.Name);
            sb.Append(string.Format(" (Parent: {0})", n.Parent.Name));
            foreach (Node ch in n.Children)
            {
                SubNodeToString(ch, sb);
            }
        }
        string repeat(string s, int count)
        {
            var rv = new StringBuilder();
            for (int i = 0; i < count; i++) { rv.Append(s); };
            return rv.ToString();
        }
        public NodeCollection Children
        {
            get
            {
                return _children;
            }
        }
        public class NodeCollection : System.Collections.ObjectModel.Collection<Node>
        {
            internal NodeCollection(Node owner)
            {
                _owner = owner;
            }
            Node _owner;
            protected override void InsertItem(int index, Node item)
            {
                if (!this.Contains(item))
                {
                    base.InsertItem(index, item);
                    item._parent = _owner;
                }
            }
            protected override void RemoveItem(int index)
            {
                this[index]._parent = null;
                base.RemoveItem(index);
            }
        }
    }
}
класс формирует древовидную структуру,
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
var root = new Node("root");
            var c1 = root.AddNode("child1");
            var c2 = root.AddNode("child2");
            var c1_1 = c1.AddNode("child1_1");
            var c1_2 = c1.AddNode("child1_2");
            var c2_1 = new Node("child2_1");
            c2_1.Parent = c2;
            var c2_2 = c2.AddNode("child2_2");
            Console.Write(root.ToString());
            Console.WriteLine("\n");
            Console.WriteLine("Удаляем узлы\n");
            c2.Children.Remove(c2_2);
            c2_1.Parent = null;
            Console.WriteLine(root.ToString());
            Console.ReadKey();
задача состоит в следующем, нужно сформированное дерево преобразовать в object или строку, передать клиенту(с этим я справлюсь), затем у клиента из object или строки опять получить древовидную структуру
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
05.03.2013, 20:46
Ответы с готовыми решениями:

Не удается неявно преобразовать тип "UnsafeStack.Node" в "UnsafeStack.Node*" - как исправить?
Узел: namespace UnsafeStack { public unsafe struct Node { public int value; public Node* next; ...

Преобразовать заглавные буквы в строчные и наоборот с использованием таблицы символов
Всем привет! Не подскажете как, допустим в слове &quot;ПриВеТ&quot;, преобразовать заглавные буквы в строчные и наоборот используя таблицу символов?...

Быстрые алгоритмы сборки байтового массива в строку и наоборот
Всем привет! Народ не поделитесь быстрым алгоритмом сборки байтового массива из строки (только цифры) и разборки массива в строку? К...

119
Темная сторона .Net
 Аватар для Noob.net
592 / 489 / 39
Регистрация: 21.07.2012
Сообщений: 1,668
08.03.2013, 11:06
Студворк — интернет-сервис помощи студентам
Psilon, это не проблема 3.5 фреймфорка,это из-за конфликта генерированного кода.

Does one of your classes implement ICollection<> directly and you added an XmlArrayItemAttribute when you contain it in another collection? I had a similar problem and I resolved it by implementing ICollection in addition to the templated ICollection<>.

For an ICollection<> implementation, the serializer generates code that use the enumerator and assigns it to a local variable 'e'.
линк

я бы не назвал это багом,лучше изменить решение и все будет ок)
0
Master of Orion
Эксперт .NET
 Аватар для Psilon
6102 / 4958 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
08.03.2013, 11:16
Noob.net, фнутренная ошибка фреймворка == баг, не?
0
11 / 11 / 0
Регистрация: 17.01.2013
Сообщений: 504
08.03.2013, 12:37  [ТС]
Цитата Сообщение от hepper Посмотреть сообщение
по поводу ошибки - попробуй сериализовать один и тот же тестовый объект на сервере и клиенте и сравни их побайтно в какой нибудь внешней проге.... и еще раз сверь классы нас сервере и клиенте...

и еще, мб нужно описать вручную параметры сериализациии? т.к. все равно передаешь данные которые можно к строке легко привести...
не понимаю что вы от меня хотите, я сериализировал на сервере своё дерево, отправлял клиенту, потом опять на сервер на сервере всё нормально разпоковалось
классы у меня одинаковые, потому что dll одна для двух проектов
а про параметры сериализации уже интересно, какие бывают пораметры и как их задавать?

Добавлено через 23 минуты
создал объект на сервере new Node("coord"), сериализировал, получил:
AAEAAAD/////AQAAAAAAAAAMAgAAADtOb2RlLCBWZXJzaW9uPTEu MC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGlj S2V5VG9rZW49bnVsbAUBAAAAD0N1c3RvbVRyZWUu Tm9kZQMAAAAHX3BhcmVudAlfY2hpbGRyZW4VPE5h bWU+a19fQmFja2luZ0ZpZWxkBAQBD0N1c3RvbVRy ZWUuTm9kZQIAAAAeQ3VzdG9tVHJlZS5Ob2RlK05v ZGVDb2xsZWN0aW9uAgAAAAIAAAAKCQMAAAAGBAAA AAVjb29yZAUDAAAAHkN1c3RvbVRyZWUuTm9kZStO b2RlQ29sbGVjdGlvbgIAAAAGX293bmVyEkNvbGxl Y3Rpb25gMStpdGVtcwQDD0N1c3RvbVRyZWUuTm9k ZQIAAABxU3lzdGVtLkNvbGxlY3Rpb25zLkdlbmVy aWMuTGlzdGAxW1tDdXN0b21UcmVlLk5vZGUsIE5v ZGUsIFZlcnNpb249MS4wLjAuMCwgQ3VsdHVyZT1u ZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1udWxsXV0C AAAACQEAAAAJBgAAAAQGAAAAcVN5c3RlbS5Db2xs ZWN0aW9ucy5HZW5lcmljLkxpc3RgMVtbQ3VzdG9t VHJlZS5Ob2RlLCBOb2RlLCBWZXJzaW9uPTEuMC4w LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5 VG9rZW49bnVsbF1dAwAAAAZfaXRlbXMFX3NpemUI X3ZlcnNpb24EAAARQ3VzdG9tVHJlZS5Ob2RlW10C AAAACAgJBwAAAAAAAAAAAAAABwcAAAAAAQAAAAAA AAAED0N1c3RvbVRyZWUuTm9kZQIAAAALAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==

создал объект на клиенте new Node("coord"), сериализировал, получил:
AAEAAAD/////AQAAAAAAAAAMAgAAAAROb2RlBQEAAAAPQ3VzdG9t VHJlZS5Ob2RlAwAAAAdfcGFyZW50CV9jaGlsZHJl bhU8TmFtZT5rX19CYWNraW5nRmllbGQEBAEPQ3Vz dG9tVHJlZS5Ob2RlAgAAAB5DdXN0b21UcmVlLk5v ZGUrTm9kZUNvbGxlY3Rpb24CAAAAAgAAAAoJAwAA AAYEAAAABWNvb3JkBQMAAAAeQ3VzdG9tVHJlZS5O b2RlK05vZGVDb2xsZWN0aW9uAwAAAAZfb3duZXIR Q29sbGVjdGlvbmAxK2xpc3QVQ29sbGVjdGlvbmAx K3N5bmNSb290BAMCD0N1c3RvbVRyZWUuTm9kZQIA AAByU3lzdGVtLkNvbGxlY3Rpb25zLkdlbmVyaWMu SUxpc3RgMVtbQ3VzdG9tVHJlZS5Ob2RlLCBOb2Rl LCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1 dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbF1dAgAA AAkBAAAACQUAAAAJBQAAAAQFAAAAcVN5c3RlbS5D b2xsZWN0aW9ucy5HZW5lcmljLkxpc3RgMVtbQ3Vz dG9tVHJlZS5Ob2RlLCBOb2RlLCBWZXJzaW9uPTEu MC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGlj S2V5VG9rZW49bnVsbF1dAwAAAAZfaXRlbXMFX3Np emUIX3ZlcnNpb24EAAARQ3VzdG9tVHJlZS5Ob2Rl W10CAAAACAgJBgAAAAAAAAAAAAAABwYAAAAAAQAA AAAAAAAED0N1c3RvbVRyZWUuTm9kZQIAAAALAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==

как вы видите сериализируются кажется одинаково

Добавлено через 10 минут
причём если делать на клиенте, то тоже всё отлично передаёться и десериализируеться
вероятно ошибка в передасе возникает или при конвертировании в строку, но тогда вопрос, почему на клиенте не работает, а вернувши на сервер этот же самый код десериализируеться

Добавлено через 2 минуты
Цитата Сообщение от hepper Посмотреть сообщение
по поводу ошибки - попробуй сериализовать один и тот же тестовый объект на сервере и клиенте и сравни их побайтно в какой нибудь внешней проге.... и еще раз сверь классы нас сервере и клиенте...

и еще, мб нужно описать вручную параметры сериализациии? т.к. все равно передаешь данные которые можно к строке легко привести...
хотя вообще то вы правы, почему то один и тот же обьект на сервере и на клиенте сериализируются по разному, а как это исправить??
0
Master of Orion
Эксперт .NET
 Аватар для Psilon
6102 / 4958 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
08.03.2013, 12:47
Попробуйте наоборот: сериализовать на клиенте, десериализовать на сервере, Если будет ошибка, значит классы различаются, все просто.
0
11 / 11 / 0
Регистрация: 17.01.2013
Сообщений: 504
08.03.2013, 13:00  [ТС]
Цитата Сообщение от Psilon Посмотреть сообщение
Попробуйте наоборот: сериализовать на клиенте, десериализовать на сервере, Если будет ошибка, значит классы различаются, все просто.
как же они могут различаться, если dll одна??
0
Master of Orion
Эксперт .NET
 Аватар для Psilon
6102 / 4958 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
08.03.2013, 13:03
kelod, проверьте, мало ли, где какие связи забыли.
0
11 / 11 / 0
Регистрация: 17.01.2013
Сообщений: 504
08.03.2013, 14:13  [ТС]
Цитата Сообщение от Psilon Посмотреть сообщение
kelod, проверьте, мало ли, где какие связи забыли.
да я вроде всё удалил, в отдельном файле класс был

Добавлено через 42 минуты
вот тут человек говорил про параметры сериализации , это что такое???
0
Master of Orion
Эксперт .NET
 Аватар для Psilon
6102 / 4958 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
08.03.2013, 14:23
kelod, погуглите про атрибуты сериализации на msdn. Хотя они тут не при чем.
0
11 / 11 / 0
Регистрация: 17.01.2013
Сообщений: 504
08.03.2013, 17:17  [ТС]
Цитата Сообщение от Psilon Посмотреть сообщение
kelod, погуглите про атрибуты сериализации на msdn. Хотя они тут не при чем.
удалил ссылку, очистил решение, добавил ссылку на файл клиента, перестроился, всё равно разные байты
0
Кодогенератор
 Аватар для hepper
200 / 200 / 51
Регистрация: 15.06.2011
Сообщений: 794
08.03.2013, 18:00
Цитата Сообщение от kelod Посмотреть сообщение
как вы видите сериализируются кажется одинаково
действительно - кажется...


тут где то вроде ще темка похожая была... человек писал что тож не получается десериализовать - получилось что разные dll-ки были.. на клиенте вроде как две разных версий....


и еще попробуй сделать для сериализации простой класс, типа

C#
1
2
3
4
class SomeClass
{
public List<Node> ListNode;
}
и попробовать с ним слать...

Добавлено через 8 минут
мб это поможет http://brtrg.com/blog/post/542
0
11 / 11 / 0
Регистрация: 17.01.2013
Сообщений: 504
08.03.2013, 22:02  [ТС]
удалил все созданные dll , создал новый проект, создал библиотеку, добавил её к серверу и клиенту, не чего не поменялось как была ошибка так и есть

Добавлено через 14 минут
Цитата Сообщение от hepper Посмотреть сообщение
действительно - кажется...


тут где то вроде ще темка похожая была... человек писал что тож не получается десериализовать - получилось что разные dll-ки были.. на клиенте вроде как две разных версий....


и еще попробуй сделать для сериализации простой класс, типа

C#
1
2
3
4
class SomeClass
{
public List<Node> ListNode;
}
и попробовать с ним слать...

Добавлено через 8 минут
мб это поможет http://brtrg.com/blog/post/542

запустил ваш класс получаю вот это
System.Runtime.Serialization.Serializati onException: Unexpected binary element: 0
at System.Runtime.Serialization.Formatters. Binary.ObjectReader.ReadObject (BinaryElement element, System.IO.BinaryReader reader, System.Int64& objectId, System.Object& value, System.Runtime.Serialization.Serializati onInfo& info) [0x00000] in <filename unknown>:0
at System.Runtime.Serialization.Formatters. Binary.ObjectReader.ReadNextObject (BinaryElement element, System.IO.BinaryReader reader) [0x00000] in <filename unknown>:0

Добавлено через 16 минут
хотя нет, всё нормально с тем классом, это я не туда его добавил просто
вот что выводит в юнити
CustomTree.SomeClass
UnityEngine.Debug:Log(Object)
а вот дерево не хочет передавать , всё передаёт, даже вложенные структуры, кроме класса Node
0
Кодогенератор
 Аватар для hepper
200 / 200 / 51
Регистрация: 15.06.2011
Сообщений: 794
08.03.2013, 22:34
выложи весь класс сюда
0
11 / 11 / 0
Регистрация: 17.01.2013
Сообщений: 504
08.03.2013, 23:02  [ТС]
Цитата Сообщение от hepper Посмотреть сообщение
выложи весь класс сюда
так от выложен давно, хорошо щас продублирую

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
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace CustomTree
{
 
 
    /*  class Program
        {
            static void Main(string[] args)
            {
                var root = new Node("root");
                var c1 = root.AddNode("child1");
                var c2 = root.AddNode("child2");
                var c1_1 = c1.AddNode("child1_1");
                var c1_2 = c1.AddNode("child1_2");
                var c2_1 = new Node("child2_1");
                c2_1.Parent = c2;
                var c2_2 = c2.AddNode("child2_2");
                Console.Write(root.ToString());
                Console.WriteLine("\n");
                Console.WriteLine("Удаляем узлы\n");
                c2.Children.Remove(c2_2);
                c2_1.Parent = null;
                Console.WriteLine(root.ToString());
                Console.ReadKey();
            }
        }*/
    [Serializable]
    public class SomeClass
    {
        public List<Node> ListNode;
    }
 
 
    [Serializable]
    public class Node
    {
        public Node()
        {
            _children = new NodeCollection(this);
        }
 
        public Node(string name)
        {
            _children = new NodeCollection(this);
            this.Name = name;
        }
        public Node AddNode(string name)
        {
            var rv = new Node(name);
            this.Children.Add(rv);
            return rv;
        }
        Node _parent;
        public Node Parent
        {
            get
            {
                return _parent;
            }
            set
            {
                if (Parent != null || value == null)
                {
                    Parent.Children.Remove(this);
                }
                else
                {
                    value.Children.Add(this);
                }
                _parent = value;
            }
        }
        public string Name { get; set; }
        NodeCollection _children;
        public override string ToString()
        {
            var rv = new StringBuilder(Name);
            foreach (Node ch in Children)
            {
                SubNodeToString(ch, rv);
            }
            return rv.ToString();
        }
        public int Level
        {
            get
            {
                return Parent != null ? this.Parent.Level + 1 : 0;
            }
        }
        void SubNodeToString(Node n, StringBuilder sb)
        {
            sb.Append("\n" + repeat("\t", n.Level));
            sb.Append(n.Name);
            sb.Append(string.Format(" (Parent: {0})", n.Parent.Name));
            foreach (Node ch in n.Children)
            {
                SubNodeToString(ch, sb);
            }
        }
        string repeat(string s, int count)
        {
            var rv = new StringBuilder();
            for (int i = 0; i < count; i++) { rv.Append(s); };
            return rv.ToString();
        }
        public NodeCollection Children
        {
            get
            {
                return _children;
            }
            set { }//
        }
 
        [Serializable]
        public class NodeCollection : System.Collections.ObjectModel.Collection<Node>
        {
            public NodeCollection(Node owner)
            {
                _owner = owner;
            }
            Node _owner;
            protected override void InsertItem(int index, Node item)
            {
                if (!this.Contains(item))
                {
                    base.InsertItem(index, item);
                    item._parent = _owner;
                }
            }
            protected override void RemoveItem(int index)
            {
                this[index]._parent = null;
                base.RemoveItem(index);
            }
        }
    }
}
0
Кодогенератор
 Аватар для hepper
200 / 200 / 51
Регистрация: 15.06.2011
Сообщений: 794
08.03.2013, 23:23
я имел ввиду с методами сериализации и подготовки к отправке...
0
11 / 11 / 0
Регистрация: 17.01.2013
Сообщений: 504
09.03.2013, 13:55  [ТС]
Цитата Сообщение от hepper Посмотреть сообщение
я имел ввиду с методами сериализации и подготовки к отправке...
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
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using CustomTree;
using System.IO;
using System.Runtime.Serialization.Formatters.Binary;
 
 
namespace PhotonGame
{
 
    
    public class Options
    {
        public const int replyCon = 3;  //период проверки подключения к серверу в секундах
        //БД
        public static string bdDS = "localhost";
        public static string bdUser = "root";
        public static string bdPass = "";
        public static string bdname = "";
 
 
         
 
 
        
        public static byte[] coordb 
        {
            get
            {
                MemoryStream stream = new MemoryStream();
                BinaryFormatter formatter = new BinaryFormatter();
                try
                {
                    var root = new Node("root");
                    var c1 = root.AddNode("child1");
                    var c2 = root.AddNode("child2");
                    var c1_1 = c1.AddNode("child1_1");
                    var c1_2 = c1.AddNode("child1_2");
                    var c2_1 = new Node("child2_1");
                    formatter.Serialize(stream, root);
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.Message);
                }
 
                //stream.Position = 0;
                //Get byte array
                //byte[] buffer = stream.ToArray();
                byte[] b = stream.GetBuffer();
                stream.Close();
                return b;
                
            }
            set 
            {
                
            }
        }
 
        private static Node Coord = new Node("coord");  //координаты появления игроков на картах
 
        public static Node coord
        {
            get
            {
                return Coord;
            }
            set
            {
                Coord = value;
            }
        }
 
        private Options() 
        {
           
            
        }
    }
}
Добавлено через 14 часов 29 минут
и все затихли....
0
Кодогенератор
 Аватар для hepper
200 / 200 / 51
Регистрация: 15.06.2011
Сообщений: 794
09.03.2013, 14:14
надо допилить класс Ноде. сделать метод чтоб он себя запихивал в строку. например добавить поля-шифр к каждому ноду, и в строку писать ид-лвл-нэйм-.... потом данный объект добавлять в список и слать, а из него восстановить в исходную структуру.... или если класс должен быть только такого вида попробуй http://www.codeproject.com/scr... 21_src.zip мб получится
0
11 / 11 / 0
Регистрация: 17.01.2013
Сообщений: 504
09.03.2013, 14:27  [ТС]
Цитата Сообщение от hepper Посмотреть сообщение
надо допилить класс Ноде. сделать метод чтоб он себя запихивал в строку. например добавить поля-шифр к каждому ноду, и в строку писать ид-лвл-нэйм-.... потом данный объект добавлять в список и слать, а из него восстановить в исходную структуру.... или если класс должен быть только такого вида попробуй http://www.codeproject.com/scr... 21_src.zip мб получится
как допилить класс я не знаю, знал бы не пришёл сюда с вопросом, какой будет клас мне всё равно, главное что бы было дерево, шустрое и не требующее больших ресурсов, полее подробно я описал выше
за статью конечно спасибо, но я не настолько хорошо знаю английский что бы там хоть немного разобраться, а там столько всего написано.....
0
Кодогенератор
 Аватар для hepper
200 / 200 / 51
Регистрация: 15.06.2011
Сообщений: 794
09.03.2013, 19:49
там не статья, там файлик, сериализацию делает нормальную
0
11 / 11 / 0
Регистрация: 17.01.2013
Сообщений: 504
09.03.2013, 20:08  [ТС]
Цитата Сообщение от hepper Посмотреть сообщение
там не статья, там файлик, сериализацию делает нормальную
у меня появляется статья назавающаяся Optimizing Serialization in .NET
под заголовком 4 файла на выбор
а дальше статья какая у них хорошая оптимизация и как ей пользоваться, но там всё по английски и половина мне не понятно
0
Кодогенератор
 Аватар для hepper
200 / 200 / 51
Регистрация: 15.06.2011
Сообщений: 794
09.03.2013, 20:25
вот это попробуй. это из статьи
Вложения
Тип файла: zip FastSerializer22_src.zip (115.6 Кб, 8 просмотров)
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
09.03.2013, 20:25
Помогаю со студенческими работами здесь

Преобразовать строку
Дано целое число N (&gt; 0) и строка S. Преобразовать строку S в строку длины N следующим образом: если длина строки S больше N, то отбросить...

Преобразовать строку
добрый день, знаю, тема заезженная, но походу у меня руки из ж*пы ((( есть такая строка я ее парсю с хтмл страницы и вывожу в листбокс,...

Преобразовать строку в массив
Привет всем, у меня есть вот такой код: WebClient client = new WebClient(); client.Headers =...

Преобразовать строку в int
Есть файл: 13 23 41 12 32 0 2 4

Преобразовать строку в дату
Помогите пожалуйста не могу сделать, как преобразовать время в строку,работаю c Excel, надо вытащить с ячейки время указанное в ней и ...


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

Или воспользуйтесь поиском по форуму:
60
Ответ Создать тему
Новые блоги и статьи
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 через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru