Наследование C# ProtoBuf с помощью дженериковC#

Место общения программистов C#
Anonymous
Наследование C# ProtoBuf с помощью дженериков

Сообщение Anonymous »

Представьте следующий пример кода:

Код: Выделить всё

[ProtoContract]
[ProtoInclude(1, typeof(ExampleState))]
public abstract class BaseState
{
[ProtoMember(2)]
public T Model { get; set; }

[ProtoMember(3)]
public string Id => this.Model.Id;
}

[ProtoContract]
public class ExampleState: BaseState
{
[ProtoMember(1)]
public DateTimeOffset LastSeenAt { get; set; }
}

[ProtoContract]
public class ExampleModel
{
[ProtoMember(1)]
public DateTimeOffset CreatedAt { get; set; }

[ProtoMember(2)]
public string Name { get; set; }
}
при использовании protobuf-net. BaseState определяет некоторый ProtoInclude для exampleState, но затем появляется предупреждение PBN0012: тип «ExampleState» объявлен как включаемый, но не является прямым подтипом.
Это желаемое поведение или ошибка? Как выглядит обходной путь без необходимости переписывать все модели (в нашем случае это может оказаться довольно сложным)

Подробнее здесь: https://stackoverflow.com/questions/700 ... h-generics

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