у нас много классов, и они наследуются от родительских классов, иногда наследуются многоуровнево.
мы не можем добавить [ProtoInclude()] везде.
Я не уверен, что нам действительно нужен этот или какой-либо альтернативный способ. (как и наоборот - в производном классе мы можем указать тип базового класса).
Мы также пытались напрямую установить это значение только при сериализации
Код: Выделить всё
public static void RegisterTypesForObject(object obj)
{
int i = 100;
Type currentType = obj.GetType();
while (currentType != null && currentType.BaseType != typeof(object))
{
RuntimeTypeModel.Default[currentType.BaseType].AddSubType(i, currentType);
currentType = currentType.BaseType;
i++;
}
}
Если мы попытаемся сериализовать один класс, а второй раз другой класс, мы получим ошибку
/>'Тип не может быть изменен после создания сериализатора для TrackingObject'.
код можно найти здесь — ссылка.
Мы должны сохранить все значения после десериализации.
Подробнее здесь: https://stackoverflow.com/questions/789 ... rent-class
Мобильная версия