意外 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
要求。
已从最新的 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
要求。