C # Выполняется ли конструктор Deserialization, а не конструктор по умолчанию?
-
12-12-2019 - |
Вопрос
Я просто знаком с сериализацией объектов в C #.Я задаюсь вопросом, называется ли конструктор десериализации вместо конструктора по умолчанию или в дополнение к.Если это в дополнение к, какой заказы они называются?Например:
[Serializable()]
public class ReadCache : ISerializable
{
protected ArrayList notifiedURLs;
// Default constructor
public ReadCache()
{
notifiedURLs = new ArrayList();
}
// Deserialization constructor.
public ReadCache(SerializationInfo info, StreamingContext ctxt)
{
//Get the values from info and assign them to the appropriate properties
notifiedURLs = (ArrayList)info.GetValue("notifiedURLs", typeof(ArrayList));
}
}
. Решение
Нет, он будет вызван "вместо" по умолчанию - но вы можете инициализировать свой список с чем-то вроде этого:
public ReadCache(SerializationInfo info, StreamingContext ctxt)
: this()
{
//Get the values from info and assign them to the appropriate properties
notifiedURLs = (ArrayList)info.GetValue("notifiedURLs", typeof(ArrayList));
}
.
Пожалуйста, обратите внимание на « ...: это () " - синтаксис - но в вашем особом случае вам не нужно!
Не связан с StackOverflow