Почему ProtoInclude необходим для родительского классаC#

Место общения программистов C#
Anonymous
Почему ProtoInclude необходим для родительского класса

Сообщение Anonymous »

Я новичок в этом Protobuf.net,
у нас много классов, и они наследуются от родительских классов, иногда наследуются многоуровнево.
мы не можем добавить [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

Вернуться в «C#»