Форум программистов, компьютерный форум, киберфорум
Наши страницы
C# для начинающих
Войти
Регистрация
Восстановить пароль
 
 
TugRRRa
16 / 16 / 2
Регистрация: 17.02.2012
Сообщений: 104
#1

Сохранение данных через бинарную сериализацию - C#/.NET 4.x

29.07.2013, 11:10. Просмотров 932. Ответов 21
Метки нет (Все метки)

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
[Serializable()]
    public class DataModel
    {
        public bool Active { get; set; }
        public int ElementType { get; set; }
        public int ElementDimensionType { get; set; }
        public string Quantity { get; set; }
        public string WeightFor { get; set; }
        public string Weight { get; set; }
        public string Rate { get; set; }
        public string Area { get; set; }
    }
 
    [Serializable()]
    public class GeneralDataModel
    {
        public string Code { get; set; }
        public string Pool { get; set; }
        public string ObjectName { get; set; }
        public string Position { get; set; }
        public string Construction { get; set; }
    }
Объявили объекты для сериализации

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
protected void SetGeneralData(GeneralDataModel model)
        {
            Code_number_info.Text = model.Code;
            Object_name_info.Text = model.ObjectName;
            Pool_info.Text = model.Pool;
            Position_info.Text = model.Position;
            Construction_info.Text = model.Construction;
        }
        protected void SetIndexData(DataModel model, Panel modelPanel)
        {
            try
            {
                (modelPanel.Controls[0] as System.Windows.Forms.CheckBox).Checked = model.Active;
                (modelPanel.Controls[1] as ComboBox).SelectedIndex = model.ElementType;
                (modelPanel.Controls[2] as ComboBox).SelectedIndex = model.ElementDimensionType;
                (modelPanel.Controls[3] as TextBox).Text = model.Quantity;
                (modelPanel.Controls[4] as TextBox).Text = model.WeightFor;
                (modelPanel.Controls[5] as TextBox).Text = model.Weight;
                (modelPanel.Controls[6] as TextBox).Text = model.Rate;
                (modelPanel.Controls[7] as TextBox).Text = model.Area;
            }
            catch { }
        }
        protected void SetAllData(List<DataModel> models, Panel GeneralPanel,GeneralDataModel gModel)
        {
            int index = 0;
            foreach (var p in GeneralPanel.Controls)
            {
                if (p is Panel)
                {
                    SetIndexData(models[index], (Panel)p);
                    index++;
                }
            }
            SetGeneralData(gModel);
        }
        protected DataModel GetIndexData(Panel modelPanel)
        {
            int c = modelPanel.Controls.Count;
            DataModel d = new DataModel();
            try
            {
                d.Active = (modelPanel.Controls[0] as System.Windows.Forms.CheckBox).Checked;
                d.ElementType = (modelPanel.Controls[1] as ComboBox).SelectedIndex;
                d.ElementDimensionType = (modelPanel.Controls[2] as ComboBox).SelectedIndex;
                d.Quantity = (modelPanel.Controls[3] as TextBox).Text;
                d.WeightFor = (modelPanel.Controls[4] as TextBox).Text;
                d.Weight = (modelPanel.Controls[5] as TextBox).Text;
                d.Rate = (modelPanel.Controls[6] as TextBox).Text;
                d.Area = (modelPanel.Controls[7] as TextBox).Text;
            }
            catch { }
            return d;
        }
        protected void GetAllData(ref List<DataModel> models, ref GeneralDataModel gModel, Panel GeneralPanel)
        {
            foreach (var p in GeneralPanel.Controls)
            {
 
                if (p is Panel)
                {
                    models.Add(GetIndexData((Panel)p));
                }
            }
            gModel.Code = Code_number_info.Text;
            gModel.ObjectName = Object_name_info.Text;
            gModel.Pool = Pool_info.Text;
            gModel.Position = Position_info.Text;
            gModel.Construction = Construction_info.Text;
        }
- пытаемся запоминать и выгружать объекты.
При нажатии на кнопку "сохранить":

Подскажите что не так...
http://www.cyberforum.ru/csharp-beginners/thread1039692.html
0
Миниатюры
Сохранение данных через бинарную сериализацию  
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.07.2013, 11:10
Я подобрал для вас темы с готовыми решениями и ответами на вопрос .NET 4.x Сохранение данных через бинарную сериализацию (C#):

Создание копии объекта через сериализацию
Всем доброго времени суток! Реализую так: public static T...

ругается на сериализацию..
пишу клиент серверное приложение...делаю передачу данных через...

Как добавить сериализацию XML?
using System; using System.Collections.Generic; using System.ComponentModel;...

Как использовать сериализацию protobuf на примере
Всем привет. Можете подсказать как использовать сериализацию protobuf на...

Как сделать такую XML сериализацию.
Снова все здравствуйте. Как сделать такую XML сериализацию: на форме есть...

21
Konctantin
938 / 742 / 170
Регистрация: 12.04.2009
Сообщений: 1,700
30.07.2013, 09:48 #21
Не делайте так, это плохой пример для начинающих.
Создайте класс унаследованный от генерик коллекции, и не городите огород.
0
Psilon
Master of Orion
Эксперт .NET
5981 / 4834 / 901
Регистрация: 10.07.2011
Сообщений: 14,439
Записей в блоге: 5
Завершенные тесты: 4
30.07.2013, 19:00 #22
Это старый код, но ничего ужасного в нем не вижу. Экстеншн будет лучше, т.к. Его можно использовать для всех коллекций.
0
30.07.2013, 19:00
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.07.2013, 19:00
Привет! Вот еще темы с решениями:

Json - Как правильнее организовывать сериализацию в конструкторе?
Здраствуйте. Несколько вопросов по поводу сабжа. 1. Как правильнее...

Как правильно организовать сериализацию и десериализацию в XML?
использую и public static void serilaze&lt;T&gt;(T vector, string...

Как организовать сериализацию экземпляров класса, содержащего список?
Есть класс LengthOnPicture, который хранит расстояние и текст: public...

Сделать XML сериализацию, которая будет сериализовать несколько коллекций
Доброй ночи. Мне нужно сделать xml сериализацию, которая будет сериализовать...


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

Или воспользуйтесь поиском по форуму:
22
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru