我可以为Protobuf-net设置一个全局对象工厂吗?

Bra*_*non 6 c# ioc-container protobuf-net deserialization

我在Protobuf-net上看到了SetFactory方法.但是,它似乎可以按类型提供.(和MethodInfo或字符串?我能听到Func<T>吗?)

我想要的是能够使用我的IoC容器的对象解析和构造能力进行所有反序列化.(我正在使用Autofac.)Protobuf-net应该首先尝试在任何构造上使用我的IoC.如果返回null,那么我想要默认行为.目前有办法做到这一点吗?谢谢你的时间.

Mar*_*ell 2

不是现在。它不接受委托的原因是它的目标是静态编译模型 - MethodInfo 对此很好,但委托:没那么多。但是,您提供的工厂方法可以采用序列化上下文,其中可以包含您需要的任何对象。

我可以考虑一个默认的工厂方法 - 这听起来是可能的;我需要让其中一个参数成为类型,但这不是问题。

设置“可以采用(如果需要)类型和序列化上下文的默认工厂 MethodInfo”的能力是否足够?

  • @Brannon 在 r626 中提交,[示例/测试在这里](https://github.com/mgravell/protobuf-net/blob/59b83356149a6df5027631421e2d6e03c8708725/src/Examples/Issues/SO14532116.cs) (2认同)