使用具有解耦接口的protobuf-net

时间:2013-12-22 23:10:34

标签: protobuf-net

我正在尝试使用Protobuf.net版本2.0.0.668进行文件存储。我的解决方案具有在一个项目中定义的接口和在单独项目中定义的类,以及从类项目到接口项目的引用。每个类使用一个接口来引用其他类。到目前为止,这个工作正常 - 但是protobuf希望接口在ProtoInclude属性中指定具体的类类型。鉴于我的项目结构,这是不可能的。

应该有办法解决这个问题。例如,我使用服务定位器设计模式在不相关的类需要时返回接口引用的类实例:IServiceLocator<> .GetInstance()。有没有办法在protobuf中执行此操作 - 如果需要一个类型为“T”的对象?

还是有另一种解决方案,不能将我的项目重组为一个庞大的实体吗?

1 个答案:

答案 0 :(得分:0)

没有人加紧回答,我自己也找不到办法,所以我放弃了这种方法(使用ProtoInclude和相关属性)。 ProtoInclude反转接口及其实现之间的依赖关系,这限制了它在某些上下文中的有用性。我的解决方案是手工完成所有操作:编写我自己的.proto文件等。总体而言,这不是太糟糕。