C# TypeModel.Create的角色是什么?
首先,如果这是一个noob问题,请原谅,但我是新来的C# TypeModel.Create的角色是什么?,c#,serialization,protobuf-net,C#,Serialization,Protobuf Net,首先,如果这是一个noob问题,请原谅,但我是新来的protobuf-net 我注意到一些人在使用protobuf-net进行序列化时使用TypeModel.Create(),而其他人则直接调用Serializer(意味着使用默认的单例RuntimeTypeModel.default) 有什么区别?我假设如果我一直重复使用相同的RuntimeTypeModel.Default,我会获得一些性能优势,但作为交换,我应该放弃什么呢 如果在调用序列化时我已经知道对象的类型,那么哪种方法更好 谢谢k;S
protobuf-net
我注意到一些人在使用protobuf-net
进行序列化时使用TypeModel.Create()
,而其他人则直接调用Serializer
(意味着使用默认的单例RuntimeTypeModel.default
)
有什么区别?我假设如果我一直重复使用相同的RuntimeTypeModel.Default
,我会获得一些性能优势,但作为交换,我应该放弃什么呢
如果在调用序列化时我已经知道对象的类型
,那么哪种方法更好
谢谢k;
Serializer.*
上的方法现在主要用作RuntimeTypeModel.Default.*
的快捷方式。它们仍然存在的原因有三:
- 方便
- 大量现有的示例代码
- v1api兼容性
- 测试,主要是me:)
- 在不同布局/版本之间迁移
TypeModel
API也会公开。这将生成具有自定义模型类型的部件,可通过以下方式使用:
var serializer = new MyCustomSerializer();
其中MyCustomSerializer:TypeModel
——尽管在本例中它不是RuntimeTypeModel