Наследование базового класса в другой библиотеке и (де) сериализация
В настоящее время я пишу библиотеку поставщика, которая ссылается на другую библиотеку с абстрактным базовым классом. Мне было интересно, можно ли сериализовать только базовый класс? Это то, что я предпочитаю продвигать по сети, а не каждую реализацию. Мой класс ProviderInstrument предназначен только для обработки данных поставщика и преобразования их в общие данные в базовом классе Instrument.
Lib A: инструмент абстрактного класса
Lib B(ссылки на Lib A): класс ProviderInstrument: Instrument
using LibA;
using ProtoBuf;
[ProtoContract]
public abstract class Instrument
{
public event EventHandler<EventArgs<Instrument>> InstrumentUpdatedEvent;
public event EventHandler<EventArgs<decimal>> SettlementPriceUpdatedEvent;
public event EventHandler<EventArgs<decimal>> PreliminarySettlementPriceUpdateEvent;
[ProtoMember(1)]
public string Id { get; private set; }
[ProtoMember(2)]
public ulong ProviderInstrumentId { get; protected set; }
[ProtoMember(3)]
public string ProviderInstrumentId2 { get; protected set; }
}
public class ProviderInstrument : Instrument
{
private static readonly ILog Log = LogManager.Create();
private ProviderInstrument()
{
}
public ProviderInstrument(ContractType contractType)
{
ContractType = contractType;
}
public override void Update()
{
// Base class fields set here
}
}
Возможно ли это с помощью библиотеки protobuf-net? Если да, то есть ли пример, к которому вы можете порекомендовать меня? Должен ли я использовать суррогат для (де) сериализатора?