意外 sub-type

Unexpected sub-type

已从最新的 2.x 升级到 v3 并收到错误:

Unexpected sub-type: Product

方法中:

internal static byte[] GetBytes<T>(T sourceObject)
{
    using (var stream = new MemoryStream())
    {
        Serializer.Serialize(stream, sourceObject);
        return stream.ToArray();
    }
}

Product class 有 header:

[ProtoContract]
public partial class Product : CachableModel, iDeletable, iFilesUploadable, iUserGeneratedContent

CachableModel 有 header:

[ProtoContract]
[ProtoInclude(200, typeof(Product))]
public abstract class CachableModel : BaseObject, iInstanceType
{

BaseObject 有 header:

[ProtoContract]
[ProtoInclude(1, typeof(CachableModel))]
public abstract class BaseObject

为什么这不起作用?

弄清楚了,由于 AsReference 被描述,Protobuff 中这些属性的序列化不再可能 - 但是错误消息表明这是模型本身的问题,而不是 AsReferenced 属性.

我可以通过大量重构来解决这个问题,以删除我项目中的 AsReference 要求。