powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Десериализация и set
10 сообщений из 10, страница 1 из 1
Десериализация и set
    #38426849
FullKettle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть класс, который десериализуется, одно из его полей
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
        [XmlIgnore]
private int id;
public int ID
{
   get
   {
      return id;
   }
   set
   {
      Random rand = new Random((int)(DateTime.Now.Ticks));
      id = rand.Next(0, 1000);
   }
}


Соответственно после десериализации оно "пусто". Как правильно "вызвать сеттер"?
...
Рейтинг: 0 / 0
Десериализация и set
    #38426918
bazile
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FullKettle, поясни что ты подразумеваешь под "правильным вызовом сеттера".
...
Рейтинг: 0 / 0
Десериализация и set
    #38426971
FullKettle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bazileFullKettle, поясни что ты подразумеваешь под "правильным вызовом сеттера".
"Заполнение всех полей, кроме ID просходит в процессе сериализации. А как и где "заполнить" поле ID. Можно конечно после сериализации полю экземляра присвоть значение ID, но как рациональнее. Тем более что сериализуется не этот класс, а список экземпляров этого класса
...
Рейтинг: 0 / 0
Десериализация и set
    #38426973
FullKettle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FullKettlebazileFullKettle, поясни что ты подразумеваешь под "правильным вызовом сеттера".
"Заполнение" всех полей, кроме поля ID просходит в процессе сериализации. А как и где "заполнить" поле ID? Можно конечно после сериализации полю ID экземляра присвоть значение, но как рациональнее? Тем более что сериализуется не этот класс, а список экземпляров этого класса
...
Рейтинг: 0 / 0
Десериализация и set
    #38427023
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А почему бы инициализацию не вынести в отдельный метод, например конструктор? Тогда сериализация будет прозрачна.

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
public class Object
{
    public int ID { get; set; }

    public Object()
    {
        ID = new Random((int)(DateTime.Now.Ticks)).Next(0, 1000);
    }
}
...
Рейтинг: 0 / 0
Десериализация и set
    #38427073
FullKettle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУА почему бы инициализацию не вынести в отдельный метод, например конструктор? Тогда сериализация будет прозрачна.

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
public class Object
{
    public int ID { get; set; }

    public Object()
    {
        ID = new Random((int)(DateTime.Now.Ticks)).Next(0, 1000);
    }
}


A это потому, что я ступил и не правильно трактовал справку. В справке указано, что сериализуемый класс не должен иметь конструктор с параметрами, а я понял как "не должен иметь конструктора". Ну да, такого быть не может ))) Спасибо.
...
Рейтинг: 0 / 0
Десериализация и set
    #38427251
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FullKettle, я говорил не только про конструктор. Это может быть отдельный метод, который генерирует значение для ID.
...
Рейтинг: 0 / 0
Десериализация и set
    #38427508
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Этот отдельный метод имеет смысл пометить атрибутом OnDeserialized и он вызовется десериализатором
...
Рейтинг: 0 / 0
Десериализация и set
    #38427856
FullKettle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИзопропилЭтот отдельный метод имеет смысл пометить атрибутом OnDeserialized и он вызовется десериализатором
При этом он не будет пытаться найти "данные" в файле?
...
Рейтинг: 0 / 0
Десериализация и set
    #38428142
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FullKettle,

это не для XML сериализации
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Десериализация и set
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]