Как .Net
ProtoBuf
ProtoMember
Работа в цепочке наследования? Например, посмотрите на следующие классы.Атрибут ProtoBuf ProtoMember, унаследованный значением тега в C#
[ProtoContract]
public class BaseClass
{
[ProtoMember(1)]
public int Id { get; set; }
[ProtoMember(2)]
public string Name { get; set; }
}
[ProtoContract] //required?
public class DerivedClass : BaseClass
{
[ProtoMember(3)] //can tag value be 1 ?
public string Category { get; set; }
}
Вопросы упоминаются в коде в строке.
(1) Нужно ли мне маркировать производный класс ProtoContract
, если базовый класс уже ProtoContract
?
(2) Для свойств производного класса можно ли повторно использовать значения тегов (int
) ProtoMember
, уже используемые в свойствах базового класса?
Спасибо за быстрый ответ. Не могли бы вы немного рассказать об этом? * «Да, но вы также должны установить порядок получения типа» *? –
Убедитесь, что вы должны добавить атрибут '[ProtoInclude (intOrder, typeof (DerivedClass))]' для базового типа; или использовать статический класс 'RuntimeTypeModel' для другого способа сопоставления –