Наследование базового класса в другой библиотеке и (де) сериализация

В настоящее время я пишу библиотеку поставщика, которая ссылается на другую библиотеку с абстрактным базовым классом. Мне было интересно, можно ли сериализовать только базовый класс? Это то, что я предпочитаю продвигать по сети, а не каждую реализацию. Мой класс 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? Если да, то есть ли пример, к которому вы можете порекомендовать меня? Должен ли я использовать суррогат для (де) сериализатора?

0 ответов

Другие вопросы по тегам