Protobuf-net可以选择序列化类的公共字段
[ProtoContract(ImplicitFields = ImplicitFields.AllPublic)]
public class Customer
{
}
要使ProtoBuf适用于大多数DTO,我必须将此属性添加到每个类。 有没有办法全局设置它,所以如果被序列化的类没有像ProtoContract或DataContract这样的属性,它默认会使用“ImplicitFields.AllPublic”?
答案 0 :(得分:2)
不,目前不支持。在v2中,可以,但是,在运行时通过
告诉它类型RuntimeTypeModel.Default.Add(typeof(Customer), false).Add({fields});
但目前没有接受ImplicitFields
的选项(这只是一个疏忽,将在未来的版本中添加)。
我还与一些人讨论了添加在第一次看到新类型时触发的事件,这将允许您通过订阅事件来执行此操作。但这还没有写出来。