我对c#中的msgpack序列化有疑问。 我有一个基类和一个派生自base的类,每个类都包含属性,例如:
class Base
{
int PropertyA { get; set; }
}
class DerivedFromBase : Base
{
int PropertyB { get; set; }
}
此外,我有一个第三类Container的对象,例如:
class Container
{
Base ContainerProperty { get; set; }
}
我的问题是,如果ContainerProperty的类型为DerivedFromBase,则MsgPack仅序列化PropertyA,而不是PropertyB!我如何实现,MsgPack在内部将ContainerProperty识别为DerivedFromBase?我是否必须编写自定义序列化程序,或者是否有#34;内置"方式是什么?
谢谢。
答案 0 :(得分:1)
使用属性MessagePackRuntimeType
让MsgPack在运行时分析类型以进行序列化:
class Container
{
[MessagePackRuntimeType]
Base ContainerProperty { get; set; }
}