Почему 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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