Наследование 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
Ответить

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

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

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

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

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