如何通过编程设置protobuf-net回调



如果我像这样以编程方式设置protobuf:

RuntimeTypeModel.Default.Add(typeof(BaseClass), true);

以下回调从未被调用:

class BaseClass
{
[OnSerializing]
public void BeforeSerialization()
{
Debug.WriteLine("BeforeSerialization");
}
}

然而,如果我添加属性";[协议]";至";BaseClass";,则调用回调。我认为通过Protobuf属性指定的所有内容也可以通过编程方式完成。我错过了一些电话或步骤吗?

OnSerializingAttribute等仅针对它已经认为是数据契约/原型契约的东西进行处理。如果您手动完成所有操作:

RuntimeTypeModel.Default.Add(typeof(BaseClass), false)
.SetCallbacks(
beforeSerialize: nameof(BaseClass.BeforeSerialization),
afterSerialize: null,
beforeDeserialize: null,
afterDeserialize: null);

最新更新